Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <p:growl id="msgs" showDetail="true" />
- <p:panel header="Select a Location" style="margin-bottom:10px;">
- <h:panelGrid columns="2" cellpadding="5">
- <p:outputLabel for="country" value="Country: " />
- <p:selectOneMenu id="country" value="#{dropdownView.country}" style="width:150px">
- <p:ajax listener="#{dropdownView.onCountryChange}" update="city" />
- <f:selectItem itemLabel="Select Country" itemValue="" noSelectionOption="true" />
- <f:selectItems value="#{dropdownView.countries}" />
- </p:selectOneMenu>
- <p:outputLabel for="city" value="City: " />
- <p:selectOneMenu id="city" value="#{dropdownView.city}" style="width:150px">
- <f:selectItem itemLabel="Select City" itemValue="" noSelectionOption="true" />
- <f:selectItems value="#{dropdownView.cities}" />
- </p:selectOneMenu>
- </h:panelGrid>
- <p:separator />
- <p:commandButton value="Submit" update="msgs" action="#{dropdownView.displayLocation}" icon="pi pi-check" />
- </p:panel>
- </h:form>```
- dropdownView.java
- ```@ManagedBean
- @ViewScoped
- public class DropdownView implements Serializable {
- private Map<String,Map<String,String>> data = new HashMap<String, Map<String,String>>();
- private String country;
- private String city;
- private Map<String,String> countries;
- private Map<String,String> cities;
- @PostConstruct
- public void init() {
- countries = new HashMap<String, String>();
- countries.put("USA", "USA");
- countries.put("Germany", "Germany");
- countries.put("Brazil", "Brazil");
- Map<String,String> map = new HashMap<String, String>();
- map.put("New York", "New York");
- map.put("San Francisco", "San Francisco");
- map.put("Denver", "Denver");
- data.put("USA", map);
- map = new HashMap<String, String>();
- map.put("Berlin", "Berlin");
- map.put("Munich", "Munich");
- map.put("Frankfurt", "Frankfurt");
- data.put("Germany", map);
- map = new HashMap<String, String>();
- map.put("Sao Paulo", "Sao Paulo");
- map.put("Rio de Janerio", "Rio de Janerio");
- map.put("Salvador", "Salvador");
- data.put("Brazil", map);
- }
- public Map<String, Map<String, String>> getData() {
- return data;
- }
- public String getCountry() {
- return country;
- }
- public void setCountry(String country) {
- this.country = country;
- }
- public String getCity() {
- return city;
- }
- public void setCity(String city) {
- this.city = city;
- }
- public Map<String, String> getCountries() {
- return countries;
- }
- public Map<String, String> getCities() {
- return cities;
- }
- public void onCountryChange() {
- if(country !=null && !country.equals(""))
- cities = data.get(country);
- else
- cities = new HashMap<String, String>();
- }
- public void displayLocation() {
- FacesMessage msg;
- if(city != null && country != null)
- msg = new FacesMessage("Selected", city + " of " + country);
- else
- msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Invalid", "City is not selected.");
- FacesContext.getCurrentInstance().addMessage(null, msg);
- }
- }```
- Expected is on selecting any country, city should load into city dropdown.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement