Primefaces 日期选择器不会将时间传递给支持 bean

问题描述 投票:0回答:2

我有以下带有 showTime="true" 的 datePicker,它允许用户输入日期和时间。

<p:datePicker id="deliveryTime" value="#{orderController.order.deliveryTime}" showTime="true" pattern="dd.MM.yyyy"/>

deliveryTime 是 java.util.Date (也尝试使用 String,相同的结果)

在浏览器的“网络”选项卡中我可以看到:

formContent:j_id_m_4:deliveryTime_input: 23/05/19 19:45

但是,当我提交表单时,日期设置正确,但 bean 接收的时间仅为 00:00:00

primefaces datepicker
2个回答
3
投票

看起来这是一个已知问题:DatePicker:未在日期对象上设置时间#4625

由于计划重构日期相关组件以使用 Java 8 LocalDate/Time API,此问题的修复似乎也被延迟:移至 Java8 LocalDate/Time #4646


0
投票

您可以强制组件执行ajax请求来更新您的bean属性:

    <p:datePicker id="deliveryTime"
        value="#{orderController.order.deliveryTime}" showTime="true"
        pattern="dd.MM.yyyy">
        <p:ajax event="dateSelect"
            listener="#{orderController.onDeliveryTime}"></p:ajax>
    </p:datePicker>

  public void onDeliveryTime(org.primefaces.event.SelectEvent<Date> event) {
    Date date = event.getObject();
    this.order.deliveryTime = date;
  }

使用版本11.0.0进行测试

© www.soinside.com 2019 - 2024. All rights reserved.