JSF Showcase
h:inputText
HtmlInputText is a UIInput component that renders a field for editing single-line text.Validation Usage
The value attribute can be validated via the validator attribute or by specifying an f:validator type of child tag. In addition, custom user feedback can be specified via the validatorMessage attribute.Source Code
- <ui:composition xmlns="http://www.w3.org/1999/xhtml"
- xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:h="http://xmlns.jcp.org/jsf/html"
- xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
- <h:form>
- <!-- Example 1: Validating an email address using the validator attribute. -->
- <h:inputText id="text" validator="#{inputTextBackingBean.emailAddressValidator}"
- validatorMessage="#{i18n['validator-message']}" value="#{inputTextModelBean.text}" />
- <h:message for="text" />
- <hr />
- <h:commandButton action="#{inputTextBackingBean.submit}" value="#{i18n['submit']}">
- <f:ajax execute="@form" render="@form" />
- </h:commandButton>
- <h:outputText id="modelValue" value="#{inputTextModelBean.text}" />
- </h:form>
- <!-- Example 2: Validating an email address using an f:validateRegex child tag. -->
- <h:form>
- <h:inputText id="text" validatorMessage="#{i18n['validator-message']}"
- value="#{inputTextModelBean.text}">
- <f:validateRegex pattern=".+[@].+[.].+" />
- </h:inputText>
- <h:message for="text" />
- <hr />
- <h:commandButton action="#{inputTextBackingBean.submit}" value="#{i18n['submit']}">
- <f:ajax execute="@form" render="@form" />
- </h:commandButton>
- <h:outputText id="modelValue" value="#{inputTextModelBean.text}" />
- </h:form>
- </ui:composition>
- @ManagedBean
- @RequestScoped
- public class InputTextModelBean {
- 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;
- }
- }
- @ManagedBean
- @RequestScoped
- public class InputTextBackingBean {
- private static final Logger logger = LoggerFactory.getLogger(InputTextBackingBean.class);
- @ManagedProperty(value = "#{inputTextModelBean}")
- private InputTextModelBean inputTextModelBean;
- 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 setInputTextModelBean(InputTextModelBean inputTextModelBean) {
- this.inputTextModelBean = inputTextModelBean;
- }
- public void submit() {
- Object value = inputTextModelBean.getText();
- if (value == null) {
- value = inputTextModelBean.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);
- }
- }
Liferay Faces Bridge Implementation 5.0.0 + Showcase Common 3.1.1 + Liferay Faces Util 3.4.1 + Mojarra 2.2.20