Bonjour, j'ai une application qui sert à indexer, classer et rechercher des documents.
Voici un bout du fichier de configuration :
Le "moteur de recherche" de documents est dynamique; c'est-à-dire que les critères de recherche sont définis par ce fichier de config xml. Si la valeur "aIndexer" de l'élément est à true, cela signifie que l'élément (ici, destinataire) figurera dans ce moteur de recherche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <schema type="document" rootName="courrier"> <field name="Destinataire"> <displayAs>Destinataire</displayAs> <size>40</size> <type>text</type> <aIndexer>true</aIndexer> </field> </schema>
Ainsi, si on change le fichier xml, le "moteur de recherche" change aussi.
De plus, j'affiche les résultats de la recherche dans un tableau comme ceci :
Destinataire Date Lieu
M. Dupont 12-05-09 Paris
Pour l'instant tout est codé en dur. Mais les données "destinataire", "date" et "lieu" sont amenées à changer (comme pour le moteur de recherche, en fonction du fichier xml).
Voici comment j'ai réussi à coder le moteur de recherche dynamiquement :
Mais je n'arrive pas à établir le tableau de résultat dynamiquement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <%final String base = "courrier"; String displayAs = ""; String fieldName = ""; String type=""; final Base base_Base = base_JDOService.getBase_ByName( null, base ); final Schema schema = schemas.getSchema( base_Base.getSchema_Image() ); for ( final Iterator it_Fields = schema.getFields().iterator(); it_Fields.hasNext(); ) { final Field field = ( Field ) it_Fields.next(); if ((field.getAIndexer())==true) { //System.out.println("on rentre dans le if de aindexer=true"); type=field.getType(); displayAs = field.getDisplayAs(); fieldName = field.getName(); if ( displayAs != null ) displayAs = Regex_Utils.replaceAll( displayAs, "\\\\'", "'" ); %> <tr><td align="right"><strong><%= displayAs %> :</strong></td> <td><html:text property="name" size="30" style="strong" value="" /></td> </tr>
Auriez-vous des idées ?
Partager