将默认消息“验证错误:需要值”更改为“需要值”

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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-JSpec 和 download.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">

现在看起来像这样:

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

【讨论】:

以上是关于将默认消息“验证错误:需要值”更改为“需要值”的主要内容,如果未能解决你的问题,请参考以下文章

动态数据显示 WPF 将 ChartPlotter 的默认行为更改为移动而不是缩放

使用 JWT 进行护照身份验证:如何将护照的默认未经授权响应更改为我的自定义响应?

将默认蓝色主题更改为绿色

将 TEXT 列默认值从 null 更改为 ''(空字符串)

如何在 MacOS 中将 git 的默认代码编辑器更改为 coderunner4(一个 macOS 应用程序)

如何将应用默认主题更改为不同的应用主题?