1

私はしばらくの間この情報を調べてきましたが、オンラインにはあまりないようです。

簡単にするために、タグActionContextを介してどのようにアクセスしますか?<s:property/>

com.opensymphony.xwork2.ActionContext.locale基本的に(現在のロケール)を取得したい

私はこれらすべてを試しましたが、どれもうまくいかないようです

<s:property value="#com.opensymphony.xwork2.ActionContext.locale"/>
<s:property value="${#com.opensymphony.xwork2.ActionContext.locale}"/>
<s:property value="%{#com.opensymphony.xwork2.ActionContext.locale}"/>

そしてこれらのより多くの組み合わせ。

ありがとう

4

3 に答える 3

3

試しましたlocale.toString()か?

Locale: <s:property value='locale.toString()'/>

編集

からの値が必要な場合は、ActionContextこれをに入れますaction

public class FooAction extends ActionSupport {
    ...
    private String locale; // TODO: Getters and setters
    ...

    @Override
    public String execute () {
        ...
        locale = ActionContext.getContext().getLocale().toString();
        ...
    }
}

そして、あなたのjspでlocale属性にアクセスできます<s:property>.

<s:property value="locale"/>

お役に立てば幸いです。

于 2012-08-08T21:30:54.160 に答える
2

より直接的な方法は、次のように言うことです。

<s:property value="@com.opensymphony.xwork2.ActionContext@getContext().locale"/>

これを機能させるには、struts.xml で静的メソッドの呼び出しを有効にする必要があります。

<struts>
  <constant name="struts.ognl.allowStaticMethodAccess" value="true"/>
  ...
</struts>
于 2013-02-14T05:50:22.430 に答える
1

次のように使用できます。

<%=session.getAttribute("WW_TRANS_I18N_LOCALE") %>

これにより、セッションから直接ロケールが取得されます

于 2013-08-05T06:35:15.257 に答える