簡體   English   中英

Struts2使用屬性標簽從jsp訪問ActionContext

[英]Struts2 access ActionContext from jsp using property tag

我已經查找了一段時間,但似乎網上沒有很多信息。

為簡單ActionContext ,我們如何通過<s:property/>標記訪問ActionContext

基本上我想獲取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}"/>

以及這些的更多組合。

謝謝

您是否嘗試過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中,您可以使用<s:property>訪問locale屬性。

<s:property value="locale"/>

希望對您有所幫助。

更直接的方法是說:

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

為此,需要在struts.xml中啟用靜態方法調用。

<struts>
  <constant name="struts.ognl.allowStaticMethodAccess" value="true"/>
  ...
</struts>

您可以將其用作:

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

這將直接從會話獲取語言環境

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM