Bonjour, j'ai une application qui sert à indexer, classer et rechercher des documents.

Voici un bout du fichier de configuration :
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>
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.
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 :
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>
Mais je n'arrive pas à établir le tableau de résultat dynamiquement.

Auriez-vous des idées ?