首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用属性标记从jsp访问Struts2 ActionContext

使用属性标记从jsp访问Struts2 ActionContext
EN

Stack Overflow用户
提问于 2012-08-09 03:21:37
回答 3查看 3.5K关注 0票数 1

我查找这些信息已经有一段时间了,但似乎没有太多的在线信息。

为了简单起见,我们如何通过<s:property/>标记访问ActionContext

基本上我想获取com.opensymphony.xwork2.ActionContext.locale (当前语言环境)

我试过所有这些,但似乎都不管用。

代码语言:javascript
复制
<s:property value="#com.opensymphony.xwork2.ActionContext.locale"/>
<s:property value="${#com.opensymphony.xwork2.ActionContext.locale}"/>
<s:property value="%{#com.opensymphony.xwork2.ActionContext.locale}"/>

以及更多的这些组合。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-09 05:30:54

你试过locale.toString()吗?

代码语言:javascript
复制
Locale: <s:property value='locale.toString()'/>

编辑

如果您需要来自ActionContext的值,请将以下内容放入您的action

代码语言:javascript
复制
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属性。

代码语言:javascript
复制
<s:property value="locale"/>

我希望它能帮上忙。

票数 3
EN

Stack Overflow用户

发布于 2013-02-14 13:50:22

更直接的方法是这样说:

代码语言:javascript
复制
<s:property value="@com.opensymphony.xwork2.ActionContext@getContext().locale"/>

为此,需要在struts.xml中启用静态方法调用

代码语言:javascript
复制
<struts>
  <constant name="struts.ognl.allowStaticMethodAccess" value="true"/>
  ...
</struts>
票数 2
EN

Stack Overflow用户

发布于 2013-08-05 14:35:15

您可以将其用作:

代码语言:javascript
复制
<%=session.getAttribute("WW_TRANS_I18N_LOCALE") %>

这将直接从会话中获取区域设置

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11871667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档