Problème de properties

arsenne Messages postés 3 Date d'inscription dimanche 20 novembre 2005 Statut Membre Dernière intervention 13 avril 2006 - 13 avril 2006 à 14:03
arsenne Messages postés 3 Date d'inscription dimanche 20 novembre 2005 Statut Membre Dernière intervention 13 avril 2006 - 13 avril 2006 à 15:44
Bonjour à tous,
Je réalise une IHM dans lesquels il y a des champs de type inputSelect. Au démarage de mon application je rempli ces champs à l'aide de fichier.properties. Mon problème est que je ne retrouve pas mes paramètres dans l'ordre que je les ai écrit. je souhaiterais savoir s'il existe un moyen d'utiliser les properties et de récupérer leurs contenus dans leurs ordres d'écriture ou bien s'il existe une autre méthode pour effectuer cette fonction (et qui me permet de garder les avantages des properties, à savoir: récupérer des données depuis un fichier et faire le référencement clef = valeur).
Merci d'avance;

voici la partie de mon code pour le chargement de mon properties:

Properties tab_etou = new Properties();
FileInputStream flux = new FileInputStream("C:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/test/properties/tab_etou.properties");
tab_etou.load(flux);
flux.close();

et voici celle qui me permet de lister les couples clef=valeur:

/************************************************************************
* @Name affSelectETOU() *
* @Param Nom du tag "SELECT" html *
* @throws IOException *
* @Description Charge les options d'un "SELECT"(list box) html pour *
* etendre (et)ou ajouter (ou) un filtre. *
************************************************************************/
public static StringBuffer affSelectETOU(Properties param){

StringBuffer affSelectBufferETOU = new StringBuffer();
affSelectBufferETOU.append(" size="1"> ");

Enumeration value = param.elements();
Enumeration key = param.keys();
while(value.hasMoreElements() && key.hasMoreElements()){
Object clef = key.nextElement();
Object valeur = value.nextElement();

affSelectBufferETOU.append("<option value="");
affSelectBufferETOU.append(clef);
affSelectBufferETOU.append("" >");
affSelectBufferETOU.append(valeur);
affSelectBufferETOU.append("</option>");

}

affSelectBufferETOU.append("</select>");
return affSelectBufferETOU;
}

2 réponses

cs_ducheseb Messages postés 344 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 23 juin 2006 9
13 avril 2006 à 14:20
Tu pourrais récuperer tes propriétés comme suit:

import java.io.*;

 import java.util.Properties;

 

 public class PropertiesTest{

 public static void main(String[] args){

 

   Properties props=new Properties();

 

   try{

     props.load( new FileInputStream(new File("test.properties")));

   }catch(IOException ie){

     System.out.println("Error reading file");

   }

   String key = "name";

   String val = props.getProperty(key);

 

   System.out.println(val);

 

 }

 }


"A game is a series of interesting choices." Sid Meier
0
arsenne Messages postés 3 Date d'inscription dimanche 20 novembre 2005 Statut Membre Dernière intervention 13 avril 2006
13 avril 2006 à 15:44
Merci, mais j'ai trouvé une astuce pour régler mon problème; Dans mon fichier Properties j'ai ajouté une clef "ordre" qui a pour valeur clef1,clef2,clef3...

Donc je récupère cette valeur, je la split puis pour chaque clef je récupère la valeur qui correspond.

public static StringBuffer affSelectETOU(Properties param){

String ordo = param.getProperty("ordre");
String[] ordre;
ordre = ordo.split(",");

StringBuffer affSelectBufferETOU = new StringBuffer();
affSelectBufferETOU.append(" size="1"> ");

for (int x=0; x< ordre.length; x++){

Object clef = ordre[x];
Object valeur = param.getProperty((String) clef);

affSelectBufferETOU.append("<option value="");
affSelectBufferETOU.append(clef);
affSelectBufferETOU.append("" >");
affSelectBufferETOU.append(valeur);
affSelectBufferETOU.append("</option>");

}

affSelectBufferETOU.append("</select>");
return affSelectBufferETOU;
}
0
Rejoignez-nous