2011-01-19 6 views
47

Se #{myBean.birthdate} è di java.util.Calendar o java.util.Date tipo, può eventualmente formattare questo all'interno del EL stesso utilizzando una funzione esistente forse, con l'uscita come quello prodotto da s' SHORT, MEDIUM, LONG il DateFormat abd FULL tipo di uscita?Formato Data uscita in JSF

Invece di emettere il modulo completo per la #{myBean.birthdate}: mer 19 gennaio 19:01:42 WIT 2011, ho appena preferiscono una semplice uscita di 19 Gen 2011.

Devo utilizzare #{formatBean.format(myBean.birthdate)} invece?

risposta

131

Utilizzare <f:convertDateTime>. È possibile annidarlo in qualsiasi componente di input e output. Le regole del modello sono le stesse di java.text.SimpleDateFormat.

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

life.java - Jigar Joshi Wow, questo è qualcosa di nuovo per me, molto bello! Grazie ! Ma per quanto riguarda questo caso seguente? Im usando primefaces e il valore della data deve essere incorporato nel valore dell'attributo. Ad esempio, . – bertie

+0

@bertie: vedere la mia risposta qui sotto e utilizzare OmniFaces. –

+0

come è possibile controllare l'anno o il mese, ad esempio? –

6

Con EL 2 (Expression Language 2) è possibile utilizzare questo tipo di costrutto per la tua domanda:

#{formatBean.format(myBean.birthdate)} 

Oppure è possibile aggiungere un getter alternativo nel vostro fagioli con conseguente

#{myBean.birthdateString} 

dove getBirthdateString restituisce la corretta rappresentazione del testo. Ricordarsi di annotare il metodo get come @Transient se si tratta di un'entità.

24

Se si utilizza OmniFaces è anche possibile utilizzare le sue funzioni EL come of:formatDate() per formattare gli oggetti Date. Si potrebbe usare in questo modo:

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

In questo modo non solo è possibile utilizzarlo per l'uscita, ma anche di trasmetterla ad altri componenti JSF.

+5

Con l'approccio OmniFaces è più intuitivo di 'f: convertDateTime'. – Stephan