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

alloy:inputHidden

InputHidden is a UIInput component that renders an <input> element with type=hidden. Since it extends HtmlInputHidden, it supports all the features of h:inputHidden.

Validation Usage

The value attribute can be validated via the validator attribute or by specifying a f:validator type of child tag. In addition, custom user feedback can be specified via the validatorMessage attribute.
This is a div that contains a hidden input

This is a div that contains a hidden input

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>
<!-- Example 1: Validating an email address using the validator attribute. -->
<alloy:outputText value="#{i18n['this-is-a-div-that-contains-a-hidden-input']}" />
<alloy:field>
<alloy:inputHidden id="hidden1" binding="#{inputHidden1}"
validator="#{inputHiddenBackingBean.emailAddressValidator}"
validatorMessage="#{i18n['validator-message']}"
value="#{inputHiddenModelBean.text}" />
<alloy:message for="hidden1" />
</alloy:field>
<alloy:button onclick="document.getElementById('#{inputHidden1.clientId}').value='test@liferay.com';"
value="#{i18n['copy-a-valid-email-address-to-the-hidden-input']}" />
<alloy:button onclick="document.getElementById('#{inputHidden1.clientId}').value='testliferay.com';"
value="#{i18n['copy-an-invalid-email-address-to-the-hidden-input']}" />
<alloy:button onclick="document.getElementById('#{inputHidden1.clientId}').value='';"
value="#{i18n['clear-the-value-of-the-hidden-input']}" />
<hr />
<alloy:commandButton action="#{inputHiddenBackingBean.submit}" render="@form"
value="#{i18n['submit']}" />
<alloy:outputText id="modelValue" value="#{inputHiddenModelBean.text}" />
</alloy:form>
<!-- Example 2: Validating an email address using an f:validateRegex child tag. -->
<alloy:form>
<alloy:outputText value="#{i18n['this-is-a-div-that-contains-a-hidden-input']}" />
<alloy:field>
<alloy:inputHidden id="hidden2" binding="#{inputHidden2}"
validatorMessage="#{i18n['validator-message']}"
value="#{inputHiddenModelBean.text}">
<f:validateRegex pattern=".+[@].+[.].+" />
</alloy:inputHidden>
<alloy:message for="hidden2" />
</alloy:field>
<alloy:button onclick="document.getElementById('#{inputHidden2.clientId}').value='test@liferay.com';"
value="#{i18n['copy-a-valid-email-address-to-the-hidden-input']}" />
<alloy:button onclick="document.getElementById('#{inputHidden2.clientId}').value='testliferay.com';"
value="#{i18n['copy-an-invalid-email-address-to-the-hidden-input']}" />
<alloy:button onclick="document.getElementById('#{inputHidden2.clientId}').value='';"
value="#{i18n['clear-the-value-of-the-hidden-input']}" />
<hr />
<alloy:commandButton action="#{inputHiddenBackingBean.submit}" render="@form"
value="#{i18n['submit']}" />
<alloy:outputText id="modelValue" value="#{inputHiddenModelBean.text}" />
</alloy:form>
</ui:composition>
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
@ManagedBean
@RequestScoped
public class InputHiddenModelBean {
private Date date = new GregorianCalendar().getTime();
private String text;
public Date getDate() {
return date;
}
public String getText() {
return text;
}
public void setDate(Date date) {
this.date = date;
}
public void setText(String text) {
this.text = text;
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
@ManagedBean
@RequestScoped
public class InputHiddenBackingBean {
private static final Logger logger = LoggerFactory.getLogger(InputHiddenBackingBean.class);
@ManagedProperty(value = "#{inputHiddenModelBean}")
private InputHiddenModelBean inputHiddenModelBean;
public void emailAddressValidator(FacesContext facesContext, UIComponent uiComponent, Object value)
throws ValidatorException {
if (value != null) {
if (!value.toString().matches(".+[@].+[.].+")) {
FacesMessage facesMessage = new FacesMessage();
facesMessage.setSeverity(FacesMessage.SEVERITY_ERROR);
throw new ValidatorException(facesMessage);
}
}
}
public void setInputHiddenModelBean(InputHiddenModelBean inputHiddenModelBean) {
this.inputHiddenModelBean = inputHiddenModelBean;
}
public void submit() {
Object value = inputHiddenModelBean.getText();
if (value == null) {
value = inputHiddenModelBean.getDate();
}
logger.info("You entered: " + value);
}
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