【问题标题】:ace:dateTimeEntry converts invalid date to its another dateace:dateTime 条目将无效日期转换为另一个日期
【发布时间】:2012-11-20 15:22:51
【问题描述】:

我有一个 ace:dateTimeEntry 组件,如下所示:

<ace:dateTimeEntry id="surveyDate" partialSubmit="true" renderAsPopup="true" value="#{maintainAppointmentManagedBean.surveyNewDate}" pattern="dd/MM/yyyy" showButtonPanel="true" navigator="true" valueChangeListener="#{maintainAppointmentManagedBean.surveyDateChangeListener}"> </ace:dateTimeEntry>

当我手动输入无效日期(例如 21544/10/2012)时,icefaces 会将其转换为可接受的格式,例如 10/12/2020 或类似的格式。它必须进行一些背景计算,因此它将无效日期转换为其他日期。当它到达我自己的验证器时,日期已经转换为其他日期,因此我的验证无效,并且没有显示有关无效日期格式的消息。没有提出 JIRA 来解决这个问题。在我将此作为错误提出之前,是否有其他人遇到过此问题或有任何解决方案。

另外,pattern="dd/MM/yyyy hh:mm" 时也不会出现此问题。仅当模式为pattern="dd/MM/yyyy"时才会发生

谢谢, Dakshata Gulkhobare

【问题讨论】:

  • 不知道这是否是一个错误。但另一种方法是编写自己的转换器。看看这里的一些例子:stackoverflow.com/questions/5952222/…
  • 嗯,我明白了。如果我们提供诸如 pattern="dd/MM/yyyy" 这样的模式,icefaces 会将无效日期转换为提供的模式。如果删除此模式,则不会发生转换,并且将“无效日期”传递给验证器并引发验证错误。
  • 但是删除日期模式不是解决方案!

标签: validation date ace-editor icefaces-3


【解决方案1】:

我尝试将lenientParsing="false" 添加到ace:dateTimeEntry 它对我有用。

dateTimeEntry

【讨论】:

    猜你喜欢
    • 2014-06-24
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多