Primefaces自定义验证消息

时间:2015-11-26 07:23:14

标签: jsf jsf-2 primefaces

如何在使用prime faces消息标记时显示自定义验证消息?

假设我有一个名为Description的字段,我希望得到这样的消息:

  

描述:请输入值。

这里的描述是字段名称,所以我真正的要求是

  

formId:inputId:请输入值。

但目前我得到了这个:

  

描述:验证错误:值是必需的。

我的代码:

<p:messages id="message" />
<p:inputText id="updatedescription" value="#{equipTemplateBean.equipmentSpecificationsVO.description}" requiredMessage="Please enter Description"                                           required='true'                         
</p:inputText>

请建议如何执行此操作。

2 个答案:

答案 0 :(得分:7)

请考虑显示自定义错误消息的最小示例&#34;此字段是必填字段。&#34;提交时为空:

<强> page.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:p="http://primefaces.org/ui">
    <f:view>
        <h:head/>
        <h:body>
            <h:form>
                <p:inputText id="input"
                             required="true"
                             requiredMessage="This field is required."/>
                <p:message for="input"/>

                <p:commandButton process="input"
                                 update="@form"/>
            </h:form>
        </h:body>
    </f:view>
</html>

答案 1 :(得分:0)

正如您在mojarra repo文件中看到的那样:jsf-api/src/main/java/javax/faces/Messages.properties,第80行,您获得的验证消息由此属性定义:

javax.faces.component.UIInput.REQUIRED={0}: Validation Error: Value is required.

您可以创建自己的消息属性文件来覆盖primefaces默认键,一个put:

javax.faces.component.UIInput.REQUIRED={0}: Please enter value.

因为这是你想要的信息。

要使用此属性文件,请配置JSF的上下文文件,添加application xml节点,如下所示:

<application>
  <message-bundle>path.to.your.PropertiesMessageFile</message-bundle>
</application>

希望它有所帮助!