【问题标题】:bug in primefaces calendar timepicker?primefaces 日历时间选择器中的错误?
【发布时间】:2014-05-27 00:17:03
【问题描述】:

我的页面上有这个带有时间选择器的日历:

 <p:calendar value="#{addTaskBacking.currentTask.deadline}" mode="inline" 
  pattern="dd-MM-yyyy HH:mm" mindate="01-09-2013 00:00"/>

当我设置模式时:dd-MM-yyyy 没有正确添加所有内容,但是当我更改为:dd-MM-yyyy HH:mm 时出现此错误:

j_idt10:j_idt12: '9-04-2014' 无法理解为日期和时间。

这是我设置内联模式的时候,我设置弹窗的时候就ok了。

我有 primefaces_v4.jar。我检查了这方面http://forum.primefaces.org/viewtopic.php?f=3&t=22982,但我找不到任何解决方案

编辑: 看起来所有依赖于p:calendarmode 属性。如果我有默认的popup 模式一切都很好(比如http://primefaces.org/showcase/ui/calendarTime.jsf 上的示例。但是当我更改为内联模式时,我得到了这个错误: cal:inlineCal: '13-04-2014' could not be understood as a date and time. Example: 13-04-2014 15:16

【问题讨论】:

    标签: jsf jsf-2 primefaces calendar datetimepicker


    【解决方案1】:

    PrimeFaces 默认使用 SimpleDateFormat,除非您覆盖格式化程序。 http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

    编辑 如果您将 mindate 属性更改为与您的模式相同,您的模式将起作用。 IE:当你有一个 mindate="01/09/2013" 时,你不能有一个模式 dd-MM-yyyy HH:mm 改变你的想法到 - 01-09-2013

    编辑 2 在调试了一些你是对的之后,在 POST 中将 inputValue 字段发送到服务器之前,在 javascript 中设置 inputValue 字段以使用模式转换器时似乎存在错误......

    我通过以下更改重新编译了代码: calendar.js 中的第 129 行(合并到 primefaces.js) var newDate = this.value;

    基本上目前它尝试在输入上执行 formatDate,这很好,因为它的日期格式拆分相同,即 dd/mm/yy 等。但它完全跳过了附加的“时间”不能使用 parseDatetime因为它完成了整个对象时间,这应该在您刚刚构建对象时在 java 端进行。

    this.value 是您想要的,无论是否在帖子中发回,这就是它为 _self.cfg.popup 所做的(它甚至没有设置输入 val,因为它已经存在!... 我会提出一个关于 PF 的问题

    “在PrimeFaces Issue Tracker 上提出问题 6790”

    【讨论】:

    • 我将midate 更改为01-09-2013,但这并没有帮助。改变模式并不能解决问题。看起来所有依赖于modep:calendar 属性。如果我有默认的popup 模式一切都很好(比如primefaces.org/showcase/ui/calendarTime.jsf 的例子)。但是当我更改为 inline 模式时,我收到此错误:cal:inlineCal: '13-04-2014' could not be understood as a date and time. Example: 13-04-2014 15:16
    • 啊,我明白了 - 我今晚可以用源代码多玩一点,这是在您收到该错误的 javascript 或 java 代码中吗? - 同时你可以尝试添加你自己的转换器吗?而不是使用默认的转换器行为 -
    • 好吧,看来它甚至没有正确绑定(表单帖子中没有应用时间)。
    • 更新了我的答案,将在我创建问题跟踪器时重新编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 2018-05-10
    • 2021-10-16
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多