p:日历上的正则表达式日期验证

时间:2013-02-13 17:52:52

标签: jsf primefaces

我的日历有readOnlyInput =“false”,因此用户可以输入错误的日期,例如13/13/2013。

有没有办法让regexValidate我的日期,以防用户更喜欢输入日期而不是使用datePicker弹出窗口?

<p:calendar id="birthDate" size="22" locale="#{view.locale}"
                            maxdate="#{userCreationBean.maxDate}" navigator="true"
                            yearRange="c-100" readOnlyInput="false"
                            value="#{userCreationBean.user.birthDate}"
                            mindate="01/01/1900" pattern="dd/MM/yyyy"
                            style="left: 194px !important;"

                            >
                        </p:calendar>

1 个答案:

答案 0 :(得分:1)

<f:validateRegex>验证程序仅适用于String输入值,而不适用于Date输入值,因此无法满足您的目的。

而是使用<f:convertDateTime>转换器。

<p:calendar ...>
    <f:convertDateTime pattern="dd/MM/yyyy" />
</p:calendar>

默认为non-lenient,因此在输入无效日期时会抛出转换器异常。如有必要,您可以通过输入组件上的converterMessage属性自定义转换器消息。