我查找这些信息已经有一段时间了,但似乎没有太多的在线信息。
为了简单起见,我们如何通过<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}"/>以及更多的这些组合。
谢谢
发布于 2012-08-09 05:30:54
你试过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"/>我希望它能帮上忙。
发布于 2013-02-14 13:50:22
更直接的方法是这样说:
<s:property value="@com.opensymphony.xwork2.ActionContext@getContext().locale"/>为此,需要在struts.xml中启用静态方法调用
<struts>
<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>
...
</struts>发布于 2013-08-05 14:35:15
您可以将其用作:
<%=session.getAttribute("WW_TRANS_I18N_LOCALE") %>这将直接从会话中获取区域设置
https://stackoverflow.com/questions/11871667
复制相似问题