Button/Link
Data
Input
Miscellaneous
Multimedia
Output
Panel
Select
JSTL
Faces Core
Facelets
Extensions

alloy:selectOneMenu

SelectOneMenu is a UISelectOne component that renders a select element (drop down list) and enables the user to select one value. Since it extends HtmlSelectOneMenu, it supports all the features of h:selectOneMenu such as accepting f:selectItem or f:selectItems as child tags.

Default Value Usage

A default value can specified using when the value attribute is bound via EL to a model bean property.

3

Source Code

<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:alloy="http://liferay.com/faces/alloy"
xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<alloy:form>
<alloy:outputLabel value="#{i18n['favorite-liferay-benefit']}" />
<alloy:selectOneMenu id="selectOneMenu" value="#{selectOneModelBean.benefitId}">
<f:converter converterId="javax.faces.Long" />
<f:selectItem itemLabel="Compatible" itemValue="1" />
<f:selectItem itemLabel="Enterprise Ready" itemValue="2" />
<f:selectItem itemLabel="Powerful Integration" itemValue="3" />
<f:selectItem itemLabel="Lightweight" itemValue="4" />
<f:selectItem itemLabel="Open Source" itemValue="5" />
</alloy:selectOneMenu>
<hr />
<alloy:commandButton action="#{selectOneBackingBean.submit}" render="@form" value="#{i18n['submit']}" />
<alloy:outputText id="modelValue" value="#{selectOneModelBean.benefitId}" />
</alloy:form>
</ui:composition>
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
@ManagedBean
@RequestScoped
public class SelectOneModelBean {
private Long favoriteId;
private Long benefitId = 3L;
private Date date;
private String phase;
@ManagedProperty(name = "liferayBenefitService", value = "#{liferayBenefitService}")
private LiferayBenefitService liferayBenefitService;
public Long getBenefitId() {
return benefitId;
}
public Date getDate() {
return date;
}
public Long getFavoriteId() {
return favoriteId;
}
public List<LiferayBenefit> getLiferayBenefits() {
return liferayBenefitService.getLiferayBenefits();
}
public String getPhase() {
return phase;
}
public void setBenefitId(Long benefitId) {
this.benefitId = benefitId;
}
public void setDate(Date date) {
this.date = date;
}
public void setFavoriteId(Long favoriteId) {
this.favoriteId = favoriteId;
}
public void setLiferayBenefitService(LiferayBenefitService liferayBenefitService) {
this.liferayBenefitService = liferayBenefitService;
}
public void setPhase(String phase) {
this.phase = phase;
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
@ManagedBean
@RequestScoped
public class SelectOneBackingBean {
private static final Logger logger = LoggerFactory.getLogger(SelectOneBackingBean.class);
@ManagedProperty(name = "selectOneModelBean", value = "#{selectOneModelBean}")
private SelectOneModelBean selectOneModelBean;
public SelectItem[] getSelectItems() {
SelectItem[] selectItems = new SelectItem[3];
for (int i = 0; i < 3; i++) {
SelectItem item = new SelectItem();
item.setLabel("Item " + (i + 1));
item.setValue(i + 1);
selectItems[i] = item;
}
return selectItems;
}
public void setSelectOneModelBean(SelectOneModelBean selectOneModelBean) {
this.selectOneModelBean = selectOneModelBean;
}
public void submit() {
PhaseId phaseId = FacesContext.getCurrentInstance().getCurrentPhaseId();
logger.info("submit: phaseId=[{0}] favoriteId=[{1}]", phaseId.toString(), selectOneModelBean.getFavoriteId());
}
public void submitAnswer() {
Date selectedDate = selectOneModelBean.getDate();
TimeZone gmtTimeZone = TimeZone.getTimeZone("GMT");
Calendar calendar = new GregorianCalendar(gmtTimeZone);
if (selectedDate != null) {
calendar.setTime(selectedDate);
}
FacesContext facesContext = FacesContext.getCurrentInstance();
FacesMessage facesMessage;
if ((selectedDate != null) && (calendar.get(Calendar.MONTH) == 6) && (calendar.get(Calendar.DATE) == 4) &&
(calendar.get(Calendar.YEAR) == 1776)) {
facesMessage = new FacesMessage("Correct!");
facesMessage.setSeverity(FacesMessage.SEVERITY_INFO);
}
else {
facesMessage = new FacesMessage("Incorrect!");
facesMessage.setSeverity(FacesMessage.SEVERITY_ERROR);
}
facesContext.addMessage(null, facesMessage);
}
public void valueChangeListener(ValueChangeEvent valueChangeEvent) {
FacesContext facesContext = FacesContext.getCurrentInstance();
PhaseId phaseId = facesContext.getCurrentPhaseId();
logger.debug("valueChangeListener: phaseId=[{0}]", phaseId.toString());
String phaseName = phaseId.toString();
FacesMessage facesMessage = new FacesMessage("The valueChangeListener method was called during the " +
phaseName + " phase of the JSF lifecycle.");
facesContext.addMessage(null, facesMessage);
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Liferay Faces Alloy 4.1.1 + Liferay Faces Bridge Implementation 5.0.0 + Showcase Common 4.0.0 + Liferay Faces Util 3.4.1 + Mojarra 2.2.20