在JSF中格式化日期输出

时间:2011-01-19 12:11:50

标签: jsf el date-formatting

如果#{myBean.birthdate}属于java.util.Calendarjava.util.Date类型,我是否可以使用现有函数在EL内部格式化它,其输出类似于{ {1}} DateFormatSHORTMEDIUM abd LONG输出类型?

而不是输出FULL的完整表格: 2011年1月19日星期三19:01:42 WIT 2011 ,我只是更喜欢 2011年1月19日的简单输出< /强>

我应该使用#{myBean.birthdate}吗?

3 个答案:

答案 0 :(得分:150)

使用<f:convertDateTime>。您可以将其嵌套在任何输入和输出组件中。模式规则与java.text.SimpleDateFormat相同。

<h:outputText value="#{someBean.dateField}" >
    <f:convertDateTime pattern="dd.MM.yyyy HH:mm" />
</h:outputText>

答案 1 :(得分:25)

如果使用OmniFaces,您还可以使用of:formatDate()之类的EL函数来格式化Date个对象。你可以这样使用它:

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

这样,您不仅可以将其用于输出,还可以将其传递给其他JSF组件。

答案 2 :(得分:6)

使用 EL 2(表达式语言2),您可以将此类构造用于您的问题:

    #{formatBean.format(myBean.birthdate)}

或者你可以在你的bean中添加一个替代的getter,结果是

    #{myBean.birthdateString}

其中getBirthdateString返回正确的文本表示。如果它是实体,请记住将get方法注释为@Transient。