【问题标题】:How to output dates using p:calendar如何使用 p:calendar 输出日期
【发布时间】:2020-05-27 20:43:02
【问题描述】:

所以我想在我的 jsf 页面上的日历中显示多个日期。 我试图用<p:calendar> 来做,但我认为它让用户输入日期,但就我而言,我想显示购买日期。

我尝试将<p:calendar> 设置为只读并禁用按钮点击,但我遇到了一些问题。所以我不能选择多个日期,如果我这样做,用户也不能使用下个月按钮。

此外,我真的不知道如何获取日期,这些日期的格式类似于 yyyy-MM-dd hh:mm:ss 到日期日期格式,如果我没记错的话,自 1900 年以来以毫秒为单位。

他们的任何 goto 解决方案而不是 primefaces 日历也是如此,因为那显然是用于输入的。

【问题讨论】:

  • 那么不要使用p:calendar来输出日期,而是一个简单的h:outputText。见stackoverflow.com/questions/4735073/format-date-output-in-jsf
  • @Jasper de Vries 是的,我可以简单地将其作为文本输出,但我想在类似于 primefaces 的日期选择器的日历视图中显示它
  • @RobinHoffmann 是 Schedule 你想要什么? primefaces.org/showcase/ui/data/schedule/basic.xhtml
  • @Melloware 必须尝试找出答案,但如果它是为数据输出而设计的,它看起来就像我正在寻找的那样。
  • 是的,您可以将日程设置为可编辑,但您可以将 editable=false 设置为仅用于显示

标签: jsf primefaces


【解决方案1】:

两种解决方法:

使用

<h:outputText value="#{backingBean.date}">
  <f:convertDateTime pattern="yyyy-MM-dd hh:mm:ss"/>
</h:outputText>

如果您仍想使用 primefaces p:calendar,请同时使用 readonlyreadonlyInput 属性。即使允许点击,也会回滚到之前的日期。:

<p:calendar id="cal"
            value="#{date}"
            pattern="yyyy-MM-dd hh:mm:ss"
            maxdate="#{now}"
            navigator="true"
            yearRange="c-100:c+100"
            readonly="true"
            readonlyInput="true">
  <p:ajax event="dateSelect"
          update="cal"
          global="false"/>
  <p:ajax global="false"
          update="cal"
          event="change"/>
<p:calendar>

【讨论】:

  • ajax 标签的用途是什么?此外,您只是在重复评论和已经给出的答案。
  • 我试图在答案中给出这两个选项。而且我没有在评论中看到代码,并且在答案中同时使用了 readonly 和 readonlyInput 。你看到了吗?
  • 如果 OP 正在寻找 h:outputText,那将是重复的。
  • @JasperdeVries 如果是这样的问题,那我就不会回答了。
猜你喜欢
  • 2013-12-05
  • 2013-05-09
  • 1970-01-01
  • 1970-01-01
  • 2015-08-09
  • 2013-06-17
  • 1970-01-01
  • 1970-01-01
  • 2015-06-30
相关资源
最近更新 更多