获取资源文件可以有: 全局范围/包范围/action范围
国际化案例:(国际化其实很简单的)
第一步:先创建好资源文件,注意资源文件名格式
第二步:
在struts.xml中使用资源文件配置常量配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPEstruts PUBLIC
"-//ApacheSoftware Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 通过这个常量配置资源文件,定义为全局资源 xiehande为资源文件的名字头 -->
<constantname="struts.custom.i18n.resources" value="xiehande" />
<package name="person"namespace="/person" extends="struts-default">
<action name="manage"class="com.xiehande.action.test">
<result name="message">/message.jsp</result>
</action>
</package>
</struts>
第三步:方法一,在全局范围内访问:index.jsp中,使用标签 <s:textname="name"></s:text>
在action中访问的时候
利用ActionSupport类中的getText()方法获取资源文件,再将其放入ActionContext中
test.java
packagecom.xiehande.action;
importcom.opensymphony.xwork2.ActionContext;
importcom.opensymphony.xwork2.ActionSupport;
//在包范围使用资源文件,可以继承ActionSupport类,使用getText()方法
public class testextends ActionSupport {
@Override
public String execute() throwsException {
// TODO Auto-generated methodstub
//可以放到ActionContext中,全局都可以访问
ActionContext.getContext().put("message",this.getText("name"));
return "message";
}
}
即可以在jsp中 ${message}访问到。
可以这样更改IE的配置就可以看到资源文件的方便语言转换了。
总体而言,国际化确实挺简单的,不过实际开发使用的很少的》
国际化其实很简单,作用如下:在一个大型应用中,整个应用有大量的内容需要实现国际化,如果我们把国际化的内容都放置在全局资源属性文件中,显然会导致资源文件变的过于庞大、臃肿,不便于维护,这个时
候我们可以针对不同模块,使用包范围来组织国际化文件。
和国际化一样,先建立资源文件
在全局范围访问:
<%@page language="java"import="java.util.*" pageEncoding="UTF-8"%>
<%@tagliburi="/struts-tags" prefix="s"%>
<!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>国际化</title>
<meta http-equiv="pragma"content="no-cache">
<meta http-equiv="cache-control"content="no-cache">
<meta http-equiv="expires"content="0">
</head>
<body>
<s:text name="name">
<s:param>你好!</s:param>
<s:param>!谢谢光临</s:param>
</s:text>
</body>
</html>
结果:
在action中访问:
test.java
package com.xiehande.action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
//在包范围使用资源文件,可以继承ActionSupport类,使用getText()方法
public class test extends ActionSupport {
@Override
publicString execute() throws Exception {
//TODO Auto-generated method stub
//可以放到ActionContext中,全局都可以访问
ActionContext.getContext().put("message",this.getText("name",newString[]{"你好!","谢谢光临!"}));
return"message";
}
}