在 JSF 中格式化日期输出
Posted
技术标签:
【中文标题】在 JSF 中格式化日期输出【英文标题】:Format Date output in JSF 【发布时间】:2011-06-11 17:28:00 【问题描述】:如果#myBean.birthdate
是java.util.Calendar
或java.util.Date
类型,我是否可以使用现有函数在EL 本身内部对其进行格式化,输出类似于DateFormat
的@987654325 产生的输出@, MEDIUM
,LONG
abd FULL
输出类型?
我不想输出 #myBean.birthdate
的完整表单:Wed Jan 19 19:01:42 WIT 2011,我只喜欢 Jan 19, 2011 的简单输出>.
我应该改用#formatBean.format(myBean.birthdate)
吗?
【问题讨论】:
【参考方案1】:使用<f:convertDateTime>
。您可以将其嵌套在任何输入和输出组件中。模式规则同java.text.SimpleDateFormat
。
<h:outputText value="#someBean.dateField" >
<f:convertDateTime pattern="dd.MM.yyyy HH:mm" />
</h:outputText>
【讨论】:
life.java - Jigar Joshi 哇,这对我来说是新事物,非常好!谢谢 !但是下面这个案例呢?我使用primefaces,日期值将嵌入属性值中。例如,如果你使用OmniFaces,你也可以使用它的EL函数比如of:formatDate()
来格式化Date
对象。你可以这样使用它:
<h:outputText value="#of:formatDate(someBean.dateField, 'dd.MM.yyyy HH:mm')" />
这样您不仅可以将其用于输出,还可以将其传递给其他 JSF 组件。
【讨论】:
使用 OmniFaces 方法,它比f:convertDateTime
更直观。【参考方案3】:
使用 EL 2(表达式语言 2),您可以为您的问题使用这种类型的构造:
#formatBean.format(myBean.birthdate)
或者你可以在你的 bean 中添加一个替代的 getter,结果是
#myBean.birthdateString
其中 getBirthdateString 返回正确的文本表示。如果是实体,记得把get方法注解为@Transient。
【讨论】:
以上是关于在 JSF 中格式化日期输出的主要内容,如果未能解决你的问题,请参考以下文章