2014-02-07 5 views
5

Ich habe eine JSP-Seite, auf der ich einen Datumswert von meiner Aktionsklasse bekomme. Ich bin nicht in der Lage zu verstehen, wie es gehandhabt wird, wie:Wie struts property-Tag mit Datumswert funktioniert?

<s:property value="#someDate"/> 

mir Datum

2/7/14 

während

<s:property value="{#someDate}"/> 

gibt mir Datum als

[Wed Feb 7 00:00:00 IST 2014] 

Kann jemand gibt Sag mir, wie der Datumswert tatsächlich ha ist Wird hier angezeigt, da das Datum in verschiedenen Formaten zurückgegeben wird?

+0

Die Eigenschaft von 'someDate' ist welcher Typ ..? Ich meine String oder Datum Typ – Babel

+0

sein java.util.Date –

+0

Ich weiß nicht viel .. Ich denke Struts2 '' Tag wertet die Variable in Wertstack durch die Vorstellung, die Sie verwendet haben, um die Variable zu erhalten, wenn Sie '#' Taste verwenden wird verwendet, um auf die Variablen zuzugreifen, die durch den '' Tag festgelegt wurden, wenn Sie das' {#someDate} 'verwenden, wird es den Wert als Typ der Variablen erhalten, die von seinem Setter gesetzt wurde. Und wenn Sie '# someDate' verwenden, durchsucht es normalerweise den Wertestapel nach dem Namen' someDate' und gibt als 'String' zurück, dass das Format' 2/7/14' das eigentliche Format ist, das auf die 'someDate'-Variable ... for geschoben wurde Weitere Informationen finden Sie in der ognl Dokumentation. – Babel

Antwort

8

Schöne Frage.

<s:property value="{#someDate}"/> gleich <s:property value="someDate.toString()"/>${someDate} oder wo, wie in <s:property value="someDate"/> wird Typkonvertierung von xwork2 gebaut verwendet, die Kurzformat für das Gebietsschema mit der aktuellen Anforderung für Daten zugeordnet nutzt.

Built in Type Conversion Support Siehe

value="{#someDate}" means value="someDate.toString()" 

wandelt Datum date.tosting(), das ist, warum Sie bekommen [Mi 7. Februar 00.00.00 IST 2014]

Datum zu handhaben Formate gibt es einen speziellen Tag in struts2

<s:date name="someDate" format="dd/MM/yyyy" /> 

Drucke

17/04/2014 

Siehe auch

<s:date name="someDate" format="dd/MMM/yyyy" /> 

Drucke

17/Apr/2014 

Auch gibt es attibute nice="true"

<s:date name="someDate" nice="true" /> 

Drucke

2 days ago