JSF:在没有自定义消息的情况下从验证消息中删除客户端 ID(标签、组件 ID)

Posted

技术标签:

【中文标题】JSF:在没有自定义消息的情况下从验证消息中删除客户端 ID(标签、组件 ID)【英文标题】:JSF: remove client id (label, component id) from validation message without a custom message 【发布时间】:2012-09-22 12:26:37 【问题描述】:

我有以下代码:

<h:inputText id="it-date" value="#myBean.myDate">
    <f:convertDateTime pattern="MM/dd/yyyy"/>
</h:inputText>
<h:message for="it-date" />

当我输入日期 02/30/2012 时,我收到以下消息:

j_idt5:it-date: '02/30/2012' could not be understood as a date. Example: 10/01/2012 

是否可以删除包含冒号j_idt5:it-date:以保留来自Java的默认消息?

我已经尝试使用属性label,但是冒号仍然存在。我不想使用自定义消息,因为默认消息已经国际化了。

【问题讨论】:

【参考方案1】:

我猜你需要在消息处理之间以某种方式删除冒号,因为它是消息的固定部分。

签出消息属性文件,例如这里: http://grepcode.com/file/repo1.maven.org/maven2/com.sun.faces/jsf-api/2.1.7/javax/faces/Messages.properties

在这种情况下,特定的消息/属性将是: javax.faces.converter.DateTimeConverter.DATE=2: ''0'' 无法理解为日期。

查看2 之后的固定冒号。如果您想摆脱它但保留实际消息,则需要某种方式在消息处理之间进行。

也许BalusC 的这个答案是一个选项: FacesMessage listener

【讨论】:

@Abbadon:谢谢指出。 Jarvana 似乎正在下降(目前)。我交换了指向 grepcode.com 的链接

以上是关于JSF:在没有自定义消息的情况下从验证消息中删除客户端 ID(标签、组件 ID)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JSF 中为标准验证器设置自定义消息?

jsf 自定义所有错误信息

如何在 JSF 2.0 中创建自定义 404 消息?

如何在没有 single.php 的情况下从 wordpress 帖子中删除特色图片

从自定义默认 Spring 验证中删除批量

自定义iOS 中推送消息 提示框