JSF selectOneMenu Tag

JSF selectOneMenu Tag is the section where you will learn about selectOneMenu tag.

JSF selectOneMenu Tag

JSF selectOneMenu Tag

        

This is the section where you will learn about "selectOneMenu" tag. This is used to display the element that enables the user to select only one  among the list of available options. In the menu only one option is displayed at a time. This tag renders an html "select" element of size "1" with no multiple attribute. So have a look on the difference between listbox and menu. listbox can be specified of any size but menu is set to size "1" by default. The choices that we have to display in the list are added by  f:selectItem or f:selectItems.

Code Description :

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>

<f:view>
 <html>
  <body>
   <h:form>
<h:selectOneMenu id="som" value="TableBean.perInfoAll" title="select any one in this menu">
  <f:selectItem id="si1" itemLabel="Thums Up" itemValue="11" />
  <f:selectItem id="si2" itemLabel="Limca" itemValue="22" />
  <f:selectItem id="si3" itemLabel="Pepsi" itemValue="33" />
  <f:selectItem id="si4" itemLabel="Sprite" itemValue="44" />
  <f:selectItem id="si5" itemLabel="Frooti" itemValue="55" />
  <f:selectItem id="si6" itemLabel="Coca-Cola" itemValue="66" />
</h:selectOneMenu>
   </h:form>
  </body>
 </html>
</f:view>

Rendered Output :

Html Source Code: Here you can see that size of the element is set to "1" in the html source code.

<html>
 <body>
  <form id="_id0" method="post" action="/htmltag/pages/selectOneMenu.jsf" enctype="application/x-www-form-urlencoded">

<select id="_id0:som" name="_id0:som" size="1" title="select any one in this menu"> <option value="11">Thums Up</option>
  <option value="22">Limca</option>
  <option value="33">Pepsi</option>
  <option value="44">Sprite</option>
  <option value="55">Frooti</option>
  <option value="66">Coca-Cola</option>
</select>
  <input type="hidden" name="_id0" value="_id0" />
  </form>
 </body>
</html>

This tag contains some attributes that can be used for different purposes. These attributes are summarized below :

  • id : This attribute is used to uniquely identify the element within the closest container. 
  • enabledClass : This attribute is used to set the CSS class to the label of disabled choices.
  • disabledClass : This attribute is used to set the CSS class to the label of enabled choices.
  • binding : It takes the value binding expression that is used to link the component to the property of the backing bean. 
  • rendered : Its a boolean attribute. Its default value is true. It determines whether this component should be rendered or not. 
  • value : This is to set the current value of the component. 
  • converter : This specifies the converter for the component. This can be static value or EL expression . 
  • immediate : Its a boolean attribute. It is used to identify during which phase value change event should occur. If this attribute is set to true then in place of firing the event during the process validation phase, these event are sent immadiately at the end of apply request values phase. 
  • required : Its a boolean attribute. It indicates that its value is required by the user before the submission of the form to the server. If it is set to true and value is not provided then an error message comes.
  • validator : It takes the method binding expression. This expression represents the validator method. This method is called at the time of validation of the component. 
  • valueChangeListener : This also takes a method binding expression. This expression represents value change listener method. This method will be called when new value is set for this component. 
  • dir : It is used to set the direction of the text to be displayed. It can take two values LTR(left to right) and RTL (right to left). 
  • lang : It is used to set the base language of the component when displayed. 
  • style : It is used to set the CSS style definition for the component. 
  • title : It is the standard html attribute. It is used to set the tooltip text for this component. 
  • styleClass : It is used to set the CSS class for the component. 
  • onclick : Script to be invoked when the element is clicked. 
  • ondblclick : It is used for Java Script code to be invoked when the element is double-clicked. 
  • onmousedown : It is used for Java Script code to be invoked when the pointing device is pressed over this element. 
  • onmouseup : It is used for Java Script code to be invoked when the pointing device is released over this element. 
  • onmouseover : It is used for Java Script code to be invoked when the pointing device is moved into this element. 
  • onmousemove : It is used for Java Script code to be invoked when the pointing device is moved while it is in this element. 
  • onmouseout : It is used for Java Script code to be invoked when the pointing device is moves out of this element. 
  • onkeypress : It is used for Java Script code to be invoked when a key is pressed over this element. 
  • onkeydown : It is used for Java Script code to be invoked when a key is pressed down over this element. 
  • onkeyup : It is used for Java Script code to be invoked when a key is released over this element. 
  • accesskey : This is standard html attribute. It is used to set the access key for the element which is used to send the focus to the element when pressed. 
  • disabled : Its a boolean attribute. This is used to disable the element to receive focus, when it is set to true. 
  • onblur : It is used to set the java script code to execute when focus is lost from the element. 
  • onfocus : It is used to set the java script code to execute when focus is received by the element. 
  • onchange : It is used to set the java script code to execute when element is modified. 
  • onselect : It is used to set the java script code to execute when element is modified 
  • readonly : Its a boolean attribute. It is used to indicate the user that its value can't be modified, if it is set to true. 
  • tabindex : This is a standard html attribute. It is used to set the order of receiving the focus on the movement of TAB key by the user.