【问题标题】:Change the default message "Validation Error: Value is required" to just "Value is required"将默认消息“验证错误:需要值”更改为“需要值”
【发布时间】:2012-02-27 15:59:56
【问题描述】:

我可以修改这个默认的required="true" 验证消息以仅显示“需要值”吗?

formId:inputId: 验证错误:值是必需的。

【问题讨论】:

    标签: validation jsf jsf-2


    【解决方案1】:

    要么使用输入组件的requiredMessage属性:

    <x:inputXxx ... required="true" requiredMessage="Value is required" />
    

    或者在包含自定义消息模板的类路径中创建一个属性文件:

    javax.faces.component.UIInput.REQUIRED = Value is required.
    

    并在faces-config.xml中注册为消息包:

    <application>
        <message-bundle>com.example.CustomMessages</message-bundle>
    </application>
    

    上面的例子假设文件名是CustomMessages.properties并且被放在com.example包中。您可以命名并将其放置在您想要的任何位置。

    您可以在the JSF specification 的第 2.5.2.4 章中找到所有消息键的概述,例如javax.faces.component.UIInput.REQUIRED_detail,以防您使用它们。

    【讨论】:

    • 嗨 BalusC,我检查了 download.oracle.com/otndocs/jcp/jsf-2.0-fr-eval-oth-JSpecdownload.oracle.com/otndocs/jcp/jsf-2.0-fr-full-oth-JSpec 是否相同(EVAL 与 IMPL),可能有错误吗?
    • 没有。一些 API 对此有单独的文档。最终用户(阅读:我们,开发人员)应该只阅读“评估”规范。实现者(如 Mojarra 和 MyFaces)应该阅读“实现”规范。但是对于 JSF 规范来说确实没有什么不同。
    • 嗨 BalusC,我真的可以用这种方式覆盖 Apache Common Validator 的消息吗? myfaces.apache.org/commons12/myfaces-validators12/tagdoc.html
    • @BalusC 我可以将此自定义消息国际化吗?我将 javax.faces.component.UIInput.REQUIRED 放在我的国际化 JSF 属性中,但它不显示此消息,而是显示默认消息(设计:验证错误:需要值。)
    • @BalusC 除了被覆盖的 JSF 消息之外,我的所有国际化消息都处理得很好。你知道为什么会发生这种情况吗?
    【解决方案2】:

    我想我明白了。

    添加标签:

    <p:inputText id="hotelName" value="#{editHotelBackingBean.hotel.name}" required="true" label="#{labelResource.hotelName}">
    

    现在看起来像这样:

    酒店名称:验证错误:必填项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多