您的位置:首页 > 编程语言 > Java开发

WEB Struts2 国际化构建,并实现显示动态信息

2017-10-18 00:00 357 查看
加入国际化配置:

在web.xml文件中加入:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml,struts-plugin.xml,../struts.xml</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

配置struts.xml的路径,如果struts.xml文件在src根目录下的话,配置节点可省略,自动载入,如果在web-inf目录下就要在后面加入“../struts.xml”的配置

在对应的路径中加入struts.xml文件,并加入代码:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="example" extends="struts-default">
<action name="HelloWord" class="web.HelloAction">
<result name="success">/hello.jsp</result>
</action>
</package>
</struts>


在src根目录下加入struts.properties运行时配置文件,并在其中加入国际化文件的前缀名配置:
#定义Struts 2的资源文件的baseName是messageResource
struts.custom.i18n.resources=messageResouce
多个文件时用“,”隔开如:
struts.custom.i18n.resources=messageResouce,test,name

在src根目录下加入国际化支持文件,文件的命名规范为
basenam_语言代码_国家代码(大写).properties
比如:
....i18n....中设置的名字_en_US.properties(英语)
....i18n....中设置的名字_zh_CN.properties(中文)

在配置文件中加入语言环境的语言,如:
在messageResouce_zh_CN.properties中加入:testkey=欢迎世界
对应的再另一个文件中加入testkey=Hello Word

在页面中引用方法:
<s:text name="testkey"/>
<s:property value="%{getText('testkey')}"/>

运行项目就会得到其配置结果

如果要改变访问语言环境可以点击浏览器的“工具——internet选项——常规下的语言按钮”可以添加语言环境或是更改首选语言,更改后刷新页面就变成对应的英语了

很多时候在开发中会遇见与上下文相关的动态的提示信息,可以通过在国际化文件中加入动态配置实现,可以用Struts2中OGNL表达式实现,比如:

在action中

private String msg;
public String testPro(){
ServletActionContext.getRequest().setAttribute("name", "test Properties");
msg = "test message";
return SUCCESS;
}

public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}


在properties中可以写成

%{#request['name']}/%{#request['msg']} 或者是 %{#request.name}/%{#request.msg}都可以得到,页面显示时即可得到相应的结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐