【问题标题】:Customize validation message of ice:selectInputDate自定义ice的验证信息:selectInputDate
【发布时间】:2012-07-25 01:34:01
【问题描述】:

我在 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>

当我输入无效日期时,例如“sdsdsds”并切换到另一个字段我收到错误,因为 'myform:toDateId: 'sdsdsds' 是无效日期。 '

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

'sdsdsds' 是无效日期。

实现细节:JSF 2.0、Icefaces 2.0.4

【问题讨论】:

    标签: jsf icefaces


    【解决方案1】:

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

    javax.faces.converter.DateTimeConverter.DATE_detail=Invalid date format.
    

    覆盖 JSF 错误消息。

    您可以在此处查看更多详细信息:http://www.mkyong.com/jsf2/customize-validation-error-message-in-jsf-2-0/

    希望这会有所帮助! :)

    【讨论】:

    • 谢谢。我将 _detail 添加到我的消息包中,但我仍然看到错误。我可以不覆盖我的代码中的消息详细信息吗?会调查的。
    • 谢谢。我将 _detail 添加到我的消息包中,但我仍然收到 DATE 消息而不是 DATE_detail。可能是我没有覆盖代码中的消息详细信息;不过会调查的。我的要求是从 jsf 表单中获取标签名称和字段名称,并将它们更新为自定义验证消息中的占位符。我可以通过将消息包中的验证消息更改为“{2} ''{0}'' 无效。有效的日期格式为 mm/dd/yy。”并添加 label="begin date'到 JSF 中的 selectInputDate 组件。
    • 我对 f:validateLength 做了同样的事情,并且我使用如下消息包用我自己的错误覆盖了包含表单 ID 的 JSF 错误:“javax.faces.validator.LengthValidator. MINIMUM=要求的最小长度是 ''{0}''",0 表示在 f:validateLength 标签中设置的最小值。我相信您会在该链接中找到所需的任何内容。如果您仍然需要帮助,请告诉我更多详细信息!希望这会有所帮助:)
    • 我也应该在答案中添加这个:“javax.faces.converter.DateTimeConverter.DATE={2}: ''{0}'' 不能被理解为日期。”但就像我之前伤心的那样,在那个链接中你会找到一个很好的例子。如果此答案帮助您解决了问题,请将其标记为您的问题的答案,以便在遇到相同问题时帮助其他人! ;) 谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    • 2016-10-21
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2020-01-03
    相关资源
    最近更新 更多