JSF Showcase
h:selectManyCheckbox
HtmlSelectManyCheckbox is a UISelectMany component that renders checkboxes and enables the user to select multiple values.Conversion Usage
The value attribute can be converted by specifying an f:converter child tag.Source Code
- <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"
- xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
- <h:form>
- <h:outputLabel value="#{i18n['which-of-the-following-dates-are-in-the-18th-century']}" />
- <h:messages globalOnly="true" styleClass="feedback" />
- <h:selectManyCheckbox id="selectManyCheckbox" layout="pageDirection" selectedClass="inline-label" unselectedClass="inline-label"
- value="#{selectManyModelBean.dates}">
- <f:convertDateTime pattern="MM/dd/yyyy G" />
- <f:selectItem itemLabel="April 5, 33 AD" itemValue="04/05/0033 AD" />
- <f:selectItem itemLabel="October 31, 1517 AD" itemValue="10/31/1517 AD" />
- <f:selectItem itemLabel="July 4, 1776 AD" itemValue="07/04/1776 AD" />
- <f:selectItem itemLabel="July 14, 1789 AD" itemValue="07/14/1789 AD" />
- </h:selectManyCheckbox>
- <hr />
- <h:commandButton action="#{selectManyBackingBean.submitAnswer}" value="#{i18n['submit']}">
- <f:ajax execute="@form" render="@form" />
- </h:commandButton>
- <h:panelGroup id="modelValue">
- <ui:repeat value="#{selectManyModelBean.dates}" var="date">
- <h:outputText value="#{date}">
- <f:convertDateTime pattern="MMM d, yyyy G" />
- </h:outputText><br />
- </ui:repeat>
- </h:panelGroup>
- </h:form>
- </ui:composition>
- @ManagedBean
- @RequestScoped
- public class SelectManyModelBean {
- private List<Long> favoriteIds;
- private List<Long> benefitIds = Arrays.asList(2L, 4L);
- private List<Date> dates;
- private String phase;
- @ManagedProperty(name = "liferayBenefitService", value = "#{liferayBenefitService}")
- private LiferayBenefitService liferayBenefitService;
- public List<Long> getBenefitIds() {
- return benefitIds;
- }
- public List<Date> getDates() {
- return dates;
- }
- public List<Long> getFavoriteIds() {
- return favoriteIds;
- }
- public List<LiferayBenefit> getLiferayBenefits() {
- return liferayBenefitService.getLiferayBenefits();
- }
- public String getPhase() {
- return phase;
- }
- public void setBenefitIds(List<Long> benefitIds) {
- this.benefitIds = benefitIds;
- }
- public void setDates(List<Date> dates) {
- this.dates = dates;
- }
- public void setFavoriteIds(List<Long> favoriteIds) {
- this.favoriteIds = favoriteIds;
- }
- public void setLiferayBenefitService(LiferayBenefitService liferayBenefitService) {
- this.liferayBenefitService = liferayBenefitService;
- }
- public void setPhase(String phase) {
- this.phase = phase;
- }
- }
- @ManagedBean
- @RequestScoped
- public class SelectManyBackingBean {
- private static final Logger logger = LoggerFactory.getLogger(SelectManyBackingBean.class);
- @ManagedProperty(name = "selectManyModelBean", value = "#{selectManyModelBean}")
- private SelectManyModelBean selectManyModelBean;
- public void setSelectManyModelBean(SelectManyModelBean selectManyModelBean) {
- this.selectManyModelBean = selectManyModelBean;
- }
- public void submit() {
- PhaseId phaseId = FacesContext.getCurrentInstance().getCurrentPhaseId();
- logger.info("submit: phaseId=[{0}] favoriteId=[{1}]", phaseId.toString(), selectManyModelBean.getFavoriteIds());
- }
- public void submitAnswer() {
- List<Date> selectedDates = selectManyModelBean.getDates();
- TimeZone gmtTimeZone = TimeZone.getTimeZone("GMT");
- boolean correct = (selectedDates.size() > 0);
- for (Date selectedDate : selectedDates) {
- Calendar calendar = new GregorianCalendar(gmtTimeZone);
- calendar.setTime(selectedDate);
- int selectedYear = calendar.get(Calendar.YEAR);
- if ((selectedYear <= 1700) || (selectedYear > 1800)) {
- correct = false;
- break;
- }
- }
- FacesContext facesContext = FacesContext.getCurrentInstance();
- FacesMessage facesMessage;
- if (correct) {
- 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);
- }
- }
Liferay Faces Bridge Implementation 5.0.0 + Showcase Common 3.1.1 + Liferay Faces Util 3.4.1 + Mojarra 2.2.20