對於我的開源項目,我正在將日期字段從java.util.Date
切換到Java 8的java.time.LocalDateTime
。在JSP中使用Java8時間
在JSP中,我使用Struts標記來從傳入的bean中對java.util.Date
進行格式化,但是,這些將不適用於Java 8時間。我使用Struts標籤不僅檢索時間字段也格式化字符串將用於解析它:
<s:text name="generic.date.toStringFormat">
<s:param value="myBean.timeField" />
</s:text>
"generic.date.toStringFormat"
是在消息資源文件,myBean.timeField是從操作形式支持JSP。
看這個帖子:JSTL LocalDateTime format,似乎有兩個選擇,我可以使用,Sargue的https://github.com/sargue/java-time-jsptags或自定義EL函數,例如與前:
<javatime:format value="myBean.timeField" pattern="generic.date.toStringFormat"/>
問題是,"myBean.timeField"
和"generic.date.toStringFormat"
似乎只能在Struts標籤中解析。如果<javatime>
是一個標準的HTML標籤,我可以使用<s:property/>
獲得值即可解決,例如,
<span><s:property value="myBean.timeField"/></span>
但<javatime:.../>
是一個JSP標籤,我似乎無法化解其他JSP標籤內的Struts JSP標籤。問題:如何將bean值myBean.timeField
和消息資源值generic.date.toStringFormat
提取爲變量,以便我可以在上面的<javatime/>
標記中引用它們? (如果這可以通過自定義EL功能選項來完成,那也適用於我。)
$ {myBean.timeField}完美地工作,THX,圖案部分(具有或不具有$ {}的)仍然失敗不過,我會看看是否可以使用JSTL fmt標記將資源值提取到var中,以便在jt:pLDT標記中執行pattern = {$ patternVar}。 –