每种框价都会有国际化的支持,struts2的国际化大致上分为页面的国际化,Action的国际化以及xml的国际化
首先在struts.properties文件中加入以下内容:
struts.custom.i18n.resources=messageResource
或在struts.xml中加入
<constant name="struts.custom.i18n.resources" value="messageResource"></constant>
资源文件的命名格式: 名称_语言代码_国家代码. Properties
如果创建中文和英语国际化,那么资源文件名称为
messageResource_zh_CN.properties和messageResource_en_US.properties
1. jsp页面的国际化
通过使用标签<s:text name="label.helloWorld"/>输出国际化
label.helloWorld为资源文件中定义的key
在messageResource_en_US.properties加入以下内容
label.hello=hello {0}
label.helloWorld=hello,world
在messageResource_zh_CN.properties加入以下内容
label.hello=你好 {0}
label.helloWorld=你好,世界
(1). <s:text name="label.helloWorld"/>
<s:property value="%{getText('label.helloWorld')}"/>
上面两个都为输出一个hello word的两种表示
<s:textfield name="name" key="label.helloWorld"/>
<s:textfield name="name" label="%{getText('label.helloWorld')}"/>
显示一个文本框,文本框的标题进行国际化
(2). 使用<s:i18n>标签指定从某个特定的资源文件中取数据
<s:i18n name="messageResource">
<s:text name="label.helloWorld"></s:text>
</s:i18n>
指定在从messageResource取资源
(3).
<s:text name="label.hello">
<s:param>callan</s:param>
</s:text>
使用带参数的资源.<s:param>可以替换label.hello=hello {0}中的{0}
2. Action的国际化
Action的国际化主要是通过getText(String key)方法实现的
-
public String execute() throws Exception {
-
-
-
-
-
- String str1 = getText("label.helloWorld");
-
- System.out.println(str1);
-
-
-
-
-
- String str2 = getText("label.hello",new String[]{"fjf"});
-
- System.out.println(str2);
-
-
-
-
-
- List l = new ArrayList();
-
- l.add("callan");
-
- String str3 = getText("label.hello",l);
-
- System.out.println(str3);
-
-
-
- return SUCCESS;
-
- }
3. 参数化国际化
在messageResource_en_US.properties加入以下内容
userName=userName
userName.required=${getText('userName')} is required
在messageResource_zh_CN.properties加入以下内容
userName=用户名
userName.required=${getText('userName')} 不能为空
在Action中
String str4 = getText("userName.required");
System.out.println(str4);
userName.required=${getText('userName')}会取国际化的用户名
4. 使用校验框价时,提示信息可以国际化
<field name="userName">
<field-validator type="requiredstring">
<message key=”userName.required”> </message>
</field-validator>
</field>
国际化资源文件分为三种级别
(1) 全局资源文件,可以被整个应该程序引用,也就是struts.custom.i18n.resources=messageResource指定的文件
(2) 包级资源文件,每个包的根目录下可以新建资源文件,仅被当前包中的类访问.文件名格式为:package_语言代码_国家代码.
(3) Action级资源文件,仅被当前Action引用,名称为action名_语言代码_国家代码
查找顺序为从小范围到大范围, Action级优先级最大
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<param-name>struts.custom.i18n.resources</param-name>
<param-value>globalMessages</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
struts.custom.i18n.resources Location of additional localization properties files to load 加载附加的国际化属性文件(不包含.properties后缀) struts.custom.properties Location of additional ...
struts2国际化_i18n 完整实例。欢迎下载。
META-INF/MANIFEST.MForg.springframework.web.struts.ActionServletAwareProcessor.class org.springframework.web.struts.ActionSupport.class org.springframework.web.struts.AutowiringRequestProcessor.class ...
struts.xml文件配置解释,对action配置进行说明
spring-webmvc-struts.jar对Struts和Spring整合时需要用到的包
import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.actions.DispatchAction等缺少
NULL 博文链接:https://wellfrog.iteye.com/blog/612014
绝对可以解决这个这个问题。Struts初学者绝对可以受用的方法。
struts.xml文件详解示例代码,可以参照http://blog.csdn.net/jiajia333666/article/details/47979919 阅读。
struts2i18n.rar struts2 i18n的实例, 环境是myeclipse6. struts2.16. struts国际化。
详尽的struts2的struts.properties各个属性介绍
struts.xml文件详解.docstruts.xml文件详解.docstruts.xml文件详解.docstruts.xml文件详解.doc
struts2文件上传中的struts.multipart.saveDir提示信息,是没有设置struts2上传的临时文件夹造成的,下面说了两种设置的方法
struts2的struts.properties配置文件详解
一个非常详细的struts.properties文件,一看就明白.
SSH(Struts,Spring,Hibernate)struts.xml文件配置
Dom4j解析struts2框架的struts.xml,自定义struts框架需要解析配置文件
struts.xml的错误解决办法,解决错误
struts.xml和applicationContext.xml、web.xml的配置
struts1中实现了国际化(i18n)的登陆界面