Jsf 自定义ice的验证消息:选择InputDate

Jsf 自定义ice的验证消息:选择InputDate,jsf,icefaces,Jsf,Icefaces,我在JSF Icefaces表单上使用selectInputDate组件,如下所示 <ice:selectInputDate id="toDateId" renderMonthAsDropdown="true" renderYearAsDropdown="true" value="#{myBackingBean.toRequestDate}" onkeydown="checkDateMaxLe

我在JSF Icefaces表单上使用selectInputDate组件,如下所示

<ice:selectInputDate id="toDateId"
                renderMonthAsDropdown="true" renderYearAsDropdown="true"
                value="#{myBackingBean.toRequestDate}" 
                onkeydown="checkDateMaxLen('myform:toDateId', 'Request To Date');searchOnEnterKeyPress(event)"  
                renderAsPopup="true">
                <f:convertDateTime timeZone="#{dateSelectBB.timeZone}"
                    dateStyle="short" />
                <h:outputText value="(mm/dd/yy)" />
            </ice:selectInputDate>

当我输入一个无效的日期,例如“SDSDS”并切换到另一个字段时,我得到的错误是“myform:toDateId:“SDSDS”是一个无效的日期。”

如何从消息中删除表单和字段id名称并显示错误,如下所示

“SDS”是无效的日期


实现细节:JSF 2.0、Icefaces 2.0.4

您需要在消息包(messages.properties)中放入如下内容:

javax.faces.converter.DateTimeConverter.DATE_detail=Invalid date format.
覆盖JSF错误消息

您可以在此处查看更多详细信息:


希望这有帮助!:)

谢谢。我在我的消息包中添加了详细信息,但仍然看到错误。可能我没有覆盖代码中的消息详细信息;我会调查的,谢谢。我在我的消息包中添加了详细信息,但我仍然收到日期消息,而不是日期详细信息。可能我没有覆盖代码中的消息细节;不过我会调查的。我的需求是从jsf表单中获取标签名和字段名,并在自定义验证消息中将它们更新为占位符。我可以通过将消息包中的验证消息更改为“{2}”{0}”无效。有效的日期格式为mm/dd/yy。”并添加标签来完成此操作=“begin date”添加到JSF中的selectInputDate组件。我对f:validateLength做了同样的事情,并且我已经使用如下消息包覆盖了包含表单id的JSF错误:javax.faces.validator.LengthValidator.MINIMUM=Min length required为“”{0}”0表示f:validateLength标记中设置的最小值。我相信你会在这个链接中找到你需要的任何东西。如果你仍然需要帮助,请让我知道更多的细节!希望这有帮助:)我应该在回答中也添加这一点:“javax.faces.converter.DateTimeConverter.DATE={2}:“{0}”不能理解为日期。”但就像我前面所说的,在这个链接中,您可以找到一个非常好的示例。如果此答案有助于您解决问题,请将其标记为您问题的答案,以便在其他人有相同问题时对他们有所帮助!;)谢谢