jsf - LocalDate(仅限)与 primefaces 日历
问题描述
我想在 Bean中显示一个primefaces calendar
具有关联的元素。LocalDate
我以How to use java.time.ZonedDateTime / LocalDateTime in p:calendar为例。该示例工作正常,但我不需要时间部分,更重要的是我不希望显示日历的时间部分。
问题是当我更改pattern
并删除时间部分时:
<p:calendar id="localDate"
pattern="dd-MMM-yyyy"
value="#{bean.periodFrom}">
<f:converter converterId="localDateConverter" />
<p:ajax update="display" />
</p:calendar>
转换器根本不再被调用/使用。这让我有点吃惊。
删除pattern
也不起作用。
有没有其他方法可以在没有时间部分的情况下使用该示例?为什么当我“简化”模式时不再调用转换器?
JSF 2.2/ Java8/ Primefaces 6
解决方案
没有触发 ajax 更新,因为您没有指定应该触发更新的任何事件。
如果不指定任何事件,将使用默认事件类型“change”。
- p:calendar 触发“更改”事件,当您在 inputText 中输入日期并模糊时
- p:calendar 在日历弹出窗口中选择日期时触发“dateSelect”事件
在您的情况下,您应该插入多个事件侦听器:
<p:ajax update="display" />
<p:ajax event="dateSelect" update="display" />
所以你的代码将导致:
<p:calendar id="localDate"
pattern="dd-MMM-yyyy"
value="#{bean.periodFrom}">
<f:converter converterId="localDateConverter" />
<p:ajax update="display" />
<p:ajax event="dateSelect" update="display" />
</p:calendar>
(顺便说一句:不可能在同一个 p:ajax 组件中组合多个事件,您可以在此处阅读https://stackoverflow.com/a/38319944/1643015)
推荐阅读
- google-analytics - Google Analytics 子目录过滤器不起作用
- html - 如何在滚动事件上进行整个 div 滚动?
- php - 填充从 JSON 到 PHP 的下拉列表
- spring - 获取 Spring Broker Relay 内部使用的 stomp 客户端
- javascript - 循环显示帮助命令
- php - 输入类型日期不显示返回日期
- python - 一个范围内的自定义准确度指标,用于回归
- amazon-cloudwatch - 为什么在 aws cloudwatch 上使用 sumologic?
- session - 构建项目后在 ASP.NET Core 中保持会话
- php - 动态准备语句 Readymade 函数,只准备一次语句