JSF selectManyMenu Tag

In this section selectManyMenu tag will be discussed. This is used to select more than one items from a set of options.

JSF selectManyMenu Tag

JSF selectManyMenu Tag

        

In this section "selectManyMenu" tag will be discussed. This is used to select more than one items from a set of options. This renders an html "select" element which contains "multiple" attribute  with size "1". This renders the menu of options where only one is visible at a time. The difference between "selectManyListbox" and "selectManyMenu" is that listbox can be set to any size and menu is always set to size "1". Options can be added by the use of f:selectItem or f:selectItems. This tag can render different output in different browsers. In Internet Explorer browser user can select the items by scrolling the arrow icon up and down but its not the case for Mozilla or Netscape browser. In the later case this menu looks like an input text box but  many of the items can be selected.

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:selectManyMenu id="smm" value="#{TableBean.perInfoAll}" title="select one or more items">
  <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:selectManyMenu>
   </h:form>
  </body>
 </html>
</f:view>

Rendered Output :

1) In Mozilla browser :

2) In Internet Explorer :

 

Html Source Code:

<html>
<body>
<form id="_id0" method="post" action="/htmltag/pages/selectManyMenu.jsf" enctype="application/x-www-form-urlencoded">
  <select id="_id0:smm" name="_id0:smm" multiple size="1" title="select one or more items">
<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 can use some attributes that are useful in different places for different purpose. Here is the list of attributes : 

  • 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.