JSF - selectOneMenu mit Daten aus faces-config füllen

  • Themenstarter Themenstarter Berndt
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
B

Berndt

Gast
Ich möchte meine Selectbox mit Daten aus der faces-config füllen. Diese Daten sollen innerhalb der Managed-Bean im <managed-property> stehen.

Gibts irgendwo Beispielscode dafür?
 
Warum aus der Faces Config?

Schreib dir doch ein kleines Bean was die Sache für dich erledigt.
Code:
<h:selectOneMenu id="selectonem" styleClass="box2">
  <f:selectItems value="#{selectOneMenuXml.arguments}"/>
</h:selectOneMenu>

Code:
<managed-bean>
	<managed-bean-name>selectOneMenuXml</managed-bean-name>
	<managed-bean-class>jsf.backing.SelectOneMenuXml</managed-bean-class>
	<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
Der Code ist aus einem meiner Applicationen aber man erkennt das Schema wies funktioniert.
Scope: Request
Code:
public class SelectOneMenuXml{
	private ResourceBundle rbo	= 	ResourceBundle.getBundle("options");
	public ArrayList getArguments(){
		FileOps fop = new FileOps();
		ArrayList<SelectItem> l = new ArrayList<SelectItem>();
		ArrayList<File> flist = fop.findFileWith(rbo.getString("searchDelim"));
		for(File f:flist){
			l.add(new SelectItem(f.getName()));
		}
		return l;
	}
}
 
Vielen dank für die Antwort. Ich will halt das man die Selectbox-Werte nicht im Java-Code ändern muss sondern eben in der faces-config.
 
Du kannst über faces-config.xml Listen und Maps vorab initialisieren. Ich hab mal fix gegooglet, um ein Beispiel zu haben (hab grad keine Zeit das selbst zu stricken):

Code:
<managed-bean>
    <managed-bean-name>fishEyeBean</managed-bean-name>
    <managed-bean-class>com.sun.faces.run_time_test.model.FishEyeBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
      <property-name>personMessages</property-name>
      <list-entries>
        <value>Ben Galbraith</value>
        <value>Dion Almaer</value>
        <value>Aza Raskin</value>
        <value>Howard Lewis-Ship</value>
      </list-entries>
    </managed-property>
  </managed-bean>

Cu
Alex
 
Ich würde es sogar so machen das ich die Werte aus einer Datei lesen würde. So müsste man es nicht mal tomcat neu starten um die Werte zu verändern.

Code nicht getestet

Code:
public class SelectOneMenuXml(String path){
	   public ArrayList getArguments(){
	   BufferedReader infile = new BufferedReader(new FileReader(new File(path)));
	   ArrayList<SelectItem> l = new ArrayList<SelectItem>(); 
	   String line;     
	   while((line = infile.readLine()) != null)
	         l.add(new SelectItem(line));
	   }
	   infile.close();
	   return l;
}
[/quote]
 
Danke für die Antworten. Habs mir nun überlegt, werde die Daten aus der Bean füllen lassen.

Wie muss ich das angehen, ich muss doch eine Map füllen oder?
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben