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)的主要内容,如果未能解决你的问题,请参考以下文章