BreadcrumbsHome / JSF: Setting itemLabel with selectItems
JSF: Setting itemLabel with selectItems
Last Updated on Wednesday, 22 June 2016 Written by Chad Darby Tuesday, 13 October 2015
JSF provides UI components for drop-down lists. Drop-down lists are called selectOneMenu in JSF.
When you use the components, you may have the requirement to use different values for the itemLabel and itemValue. You can accomplish this by making use of a Map collection (java.util.Map). The Map collection is a collection of key-value pairs.
In JSF, you provide a reference to a Map and then JSF will build the list. It will use the Map key for the itemLabel and the Map value for the itemValue.
When the user selects an item, then the selected item’s value will be set on the bean.
Ok, enough talking, let’s look at an example.
In this example, I will present the user with a JSF form. The form will read the user’s first name, last name and country.
JSF Bean Code
The country drop down list is populated with a Map from the bean. The bean will define a Map collection that uses the Map key for the itemLabel and the Map value for the itemValue. Here’s the code snippet
Now the JSF page can make use of this bean to get the itemLabel and itemValues. Remember JSF will use the map key as the itemLabel and the map value as the itemValue
Here’s the snippet of code for the JSF page.
So when the form is displayed, the user will set the map keys in for the item label. For example, the user will see the full name of the country as shown below:
Then once they submit the form, JSF will store the value of the selected item into the bean.
Here’s a snippet of code from the response form that shows the user’s selected value:
So if the user selects “Germany”, then JSF will store the value of “DEU” for the bean property studentTwo.country.
Well, that covers how you can provide different itemLabels and itemValues for a drop-down list.
Do You Need More Details?
- Do you need to connect to a database?
- Display SQL results in a HTML table?
- Perform SQL insert, updates and deletes?
- Database Integration with JDBC
- Displaying Data in Lists and Tables
- Validating HTML Forms
- Implementing Business Logic with Managed Beans
- Deploying applications with WAR Files
Follow luv2code with the links below: