在JSF中格式化日期输出

在JSF中格式化日期输出,jsf,el,date-formatting,Jsf,El,Date Formatting,如果{myBean.birthdate}是java.util.Calendar或java.util.Date类型,我是否可以在EL内部使用现有函数格式化它,并使用类似于DateFormat的SHORT,MEDIUM生成的输出,LONGabdFULL输出类型 与其输出{myBean.birthdate}:Wed Jan 19:01:42 WIT 2011的完整表单,我更喜欢2011年1月19日的简单输出 我应该使用{formatBean.format(myBean.birthdate)}来代替吗?

如果
{myBean.birthdate}
java.util.Calendar
java.util.Date
类型,我是否可以在EL内部使用现有函数格式化它,并使用类似于
DateFormat
SHORT
MEDIUM
生成的输出,
LONG
abd
FULL
输出类型

与其输出
{myBean.birthdate}
Wed Jan 19:01:42 WIT 2011的完整表单,我更喜欢2011年1月19日的简单输出

我应该使用
{formatBean.format(myBean.birthdate)}
来代替吗?

使用。您可以将其嵌套在任何输入和输出组件中。模式规则与


使用EL 2(表达式语言2)
您可以使用这种类型的结构来回答您的问题:

    #{formatBean.format(myBean.birthdate)}
或者,您可以在bean中添加一个替代getter,从而

    #{myBean.birthdateString}
其中getBirthdateString返回正确的文本表示形式。记住,如果get方法是一个实体,请将其注释为@Transient。

如果使用,还可以使用它的EL函数,如格式化
日期
对象。您可以这样使用它:

<h:outputText value="#{of:formatDate(someBean.dateField, 'dd.MM.yyyy HH:mm')}" />


通过这种方式,您不仅可以将其用于输出,还可以将其传递给其他JSF组件。

life.java-Jigar Joshi哇,这对我来说是新的东西,非常好!非常感谢。但是接下来的这个案例呢?Im使用primefaces,日期值将嵌入属性值中。例如,.@bertie:请看下面我的答案,然后使用OmniFaces。例如,如何检查年份或月份?使用OmniFaces方法比使用
f:convertDateTime
更直观。
<h:outputText value="#{of:formatDate(someBean.dateField, 'dd.MM.yyyy HH:mm')}" />