Sto testando il componente "SelectOneMenu" su una pagina jsf. Sto popolando dinamicamente questo componente anche se il mio ManageBean (che otterrà tutti gli animali dal database).Ottenere il valore selezionato di un SelectOneMenu
Mi piacerebbe sapere se è possibile vedere l'elemento selezionato dall'utente di "SelectOneMenu" (combobox), sto provando con value = "# {animalsManage.animalSelect}" ma viene chiamato solo all'inizio della pagina. Inoltre, sto usando un inputText per vedere il valore dell'elemento selezionato di "SelectOneMenu".
Cosa sto facendo male?
JSF:
<body>
<ui:component>
<h:form>
<h:outputText value="Select one Mets File" />
<h:selectOneMenu id="combo" value="#{animalsManage.animalSelected}">
<f:selectItem itemLabel="Select..." noSelectionOption="true"/>
<f:selectItems value="#{animalsManage.allAnimals}" />
</h:selectOneMenu>
<h:inputText id="textbox" value="#{animalsManage.animalSelected }" />
</h:form>
</ui:component>
</body>
ManageBean:
@ManagedBean
@ViewScoped
public class AnimalsManage implements Serializable {
@EJB
private AnimalsFacadeREST animalsFacadeREST;
private String animalSelected;
private List< SelectItem> selectAnimals;
public List<SelectItem> getAllAnimals() {
List<Animals> al = animalsFacadeREST.findAll();
selectAnimals = new ArrayList< SelectItem>();
int i = 0;
for (Animals animal: al) {
selectAnimals.add(new SelectItem(i, animal.getName()));
i++;
}
return selectAnimals;
}
public String getAnimalSelected() {
return animalSelected;
}
public void setAnimalSelected(String animalSelected) {
this.animalSelected = animalSelected;
}
}
si può semplicemente aggiungere un f: ajax all'interno con l'evento come "cambiamento" e anche fornire un attributo di rendering con valore "@form". Questo può mostrare il valore selezionato nella casella di testo. Qualcosa del genere ** **. Prova. –
Che cos'è '# {fileManage.fileName}'? A proposito, un '' esegue il rendering di un menu a discesa, non di una casella combinata. Ottieni le tue condizioni. Ultimo ma non meno importante, l'esecuzione della logica di business in un getter è Bad. Per alcuni suggerimenti su come usare '', controlla la sua pagina wiki (metti il tuo mouse sopra il tag '[selectonemenu]' che hai posto sulla domanda fino a quando non compare una scatola nera e poi fai clic su di essa il collegamento * info *). –
BalusC
Grazie Hemanth ha aiutato. Inoltre, grazie BalusC ho modificato il testo spero che ora vada bene. – iGoDa