3

availableExclusionsがDateオブジェクトの配列である場合は、次のことを考慮してください。

<s:select listValue="(new java.text.SimpleDateFormat('MM/dd/yyyy')).format(new java.util.Date(#this[0].time))" size="25" id="inputExclusionDates" name="available" list="availableExclusions" multiple="true" cssClass="multi-select" />

この質問に答えて上記を作成しました。struts2selectタグ内の日付のリストをフォーマットするにはどうすればよいですか?(そして、他の解決策がより良い方法かもしれないこともお勧めします)。このような長いOGNL式を使用するのが良いアイデアであるかどうかに関係なく、フラストレーションからフラグメントを作成したにもかかわらず、一見同等のものが機能しなかった(出力が生成されなかった)new java.util.Date(#this[0].time)場合に機能することがわかりました。#this[0]

代用するlistValue="#this[0].class"と、何が期待できるかがわかります。class java.util.Date

新しいDateを作成すると期待どおりに動作し、たとえばなどの非推奨のDateプロパティを呼び出すとlistValue="#this[0].day"、期待どおりの出力が生成されます。

このselectステートメントnew java.util.Date(#this[0].time) の代わりに 冗長式を使用する必要があるのはなぜですか?#this[0]

Struts2.3.1.2の使用

4

1 に答える 1

3

#this[0]自動的に文字列に変換されるためです。ログレベルをデバッグに変更すると、通常は抑制されている例外メッセージが表示されます。

于 2012-09-26T13:23:06.857 に答える