首页 > 解决方案 > jsf 日历返回意外(错误?)值

问题描述

我有一个带有验证器的 primefaces 日历。

<p:calendar id="validationTriggeringCalendar"
            label="other calendar"
            value="#{myBean.otherDate}"
            navigator="true"
            locale="de"
            pattern="dd.MM.yyyy"
            showOn="button"
            renderAsPopup="true"
            required="true"
            size="12">
    <f:validator validatorId="packagename.DateFromToValidator" />
</p:calendar>
<p:calendar id="myCalendar"
            label="Some Date"
            value="#{myBean.someDate}"
            navigator="true"
            effect=""
            locale="de"
            pattern="dd.MM.yyyy"
            showOn="button"
            renderAsPopup="true"
            mindate="#{myBean.mindate}"
            size="12">
</p:calendar>

在验证器中,我获取了日历 UI 组件myCalendar(未触发验证的组件)并调用该getValue()方法,该方法不返回输入到其中的值。

我调试了输入日期“10.10.2009”的验证器代码:

UIInput calendar = getMeTheCalendar();
Date date = (Date) calendar.getValue();

我的调试器甚至告诉我submittedValue属性的值calendar是“10.10.2009”,正是我输入的内容和浏览器中显示的内容。但该getValue()方法返回一个日期对象Thu Oct 10 00:00:00 CEST 2019
如何获取组件的输入值?

我使用 Primefaces 5.3.1 顺便说一句。

标签: jsfprimefacesjsf-2

解决方案


推荐阅读