1

文字を使用して日付を表示したい (例: 2005 年 9 月 25 日土曜日)。Struts では、次のようにフォーマットする必要があります<s:date name="myDate" format="EEEE, dd MMMM"/>

しかし、日付を別の言語で表示したいので、struts2 のローカライズを使用する必要があります。さまざまなラベル (例key="global.name") に使用することは承知していますが、日付の表示に使用するにはどうすればよいですか? Sambata, 25 Septembrie 2005をルーマニア語で表示したい。

UPDATE1:それを行う1つの方法は、デフォルトのロケールをro_Roinに設定することでしたstruts.xml

<constant name="struts.locale" value="ro_RO" />

このようにして、Struts<s:date name="myDate" format="EEEE, dd MMMM"/>は、デフォルトのロケール言語で日付を表示する必要があることを自動的に認識します。他のオプションがあるかもしれませんが、これは今のところうまくいき、プロパティファイルを追加する必要はありません。

それでも、まだ 1 つの問題が残っています: 大文字の日付を取得できません (たとえば、デフォルトではsambata, 25 septembrie 2005の代わりに取得されますSambata, 25 Septembrie 2005)。どうすればこれを変更できますか?

4

2 に答える 2

1

i18n現在のロケールをルーマニア語に設定するには、インターセプターを使用する必要があります。または、アクションまたはインターセプターで手動で実行します

ActionContext.getContext().setLocale(new Locale('ro'));

またはJSPでOGNLを使用する

<s:set value="%{@com.opensymphony.xwork2.ActionContext@getContext().setLocale(new java.util.Locale('ro'))}"/>
<s:date name="myDate" format="EEEE, dd MMMM"/>

注:動作struts.ognl.allowStaticMethodAccessするには上記のようにする必要がtrueあります。

またはJSPで純粋なOGNLを使用

<s:property value="%{new java.text.SimpleDateFormat('EEEE, dd MMMM', new java.util.Locale('ro')).format(myDate)}"/>
于 2013-09-15T17:04:20.907 に答える