Come caricare e visualizzare dipendente h: selectOneMenu al cambio di ah: selectOneMenu

Voglio creare il modulo di registrazione JSF che ha il menu di selezione con l’elenco di tutti i paesi. So che questo è facile per l’implementazione con Java HashMap ma la parte difficile che non so come implementare è come subito dopo che l’utente seleziona il suo paese dall’elenco, secondo menu di selezione da visualizzare con le città del suo paese? C’è qualche esempio utile?

Auguri.

Puoi usare per questo. Se nidificato in un componente di input come , per impostazione predefinita verrà richiamato quando il valore di input viene modificato. È ansible specificare un metodo listener che potrebbe prepopolare i dati per il componente successivo in base al valore di input corrente ed è ansible specificare l’ID client del componente successivo nel render per visualizzare i dati prepopolati.

          

Il bean deve essere almeno nell’ambito di visualizzazione (non richiesta):

 @ManagedBean @ViewScoped public class Bean implements Serializable { private String country; // +getter+setter private String city; // +getter+setter private List countries; // +getter private List cities; // +getter @EJB private LocationService locationService; @PostConstruct public void init() { countries = locationService.getCountries(); } public void changeCountry() { cities = locationService.getCities(country); } // ... } 

Ovviamente puoi usare anche Map invece di List . La chiave della mappa diventa l’etichetta dell’opzione e il valore della mappa diventa il valore dell’opzione. Hai solo bisogno di tenere a mente che una HashMap è per natura non ordinata. Preferisci usare LinkedHashMap per visualizzare gli oggetti nell’ordine di inserimento della Map .

Guarda anche:

  • La nostra pagina wiki selectOneMenu
  • Quando utilizzare valueChangeListener o f: listener Ajax?