格式在JSF中输出date

如果#{myBean.birthdate}java.util.Calendarjava.util.Datetypes的,那么我可以使用一个现有的函数将其内部格式化为EL,或者使用类似于DateFormat生成的输出SHORT ,中, LONG ABD FULL输出types?

而不是输出#{myBean.birthdate}的完整forms: Wed Jan 19 19:01:42 WIT 2011 ,我只是喜欢2011年1月19日的简单输出。

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

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

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

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

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

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

使用EL 2(expression式语言2),您可以使用这种types的结构来处理您的问题:

  #{formatBean.format(myBean.birthdate)} 

或者你可以添加一个替代的getter在你的bean导致

  #{myBean.birthdateString} 

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