- 浏览: 36995 次
- 性别:
- 来自: 北京
文章分类
struts利用在session中放一个local对象来达到设置当前语言您的目的,默认的情况下,struts根据网页向后台提交时所包含的编码信息来提供缺省的local对象。这就是我们为什么可以通过更改网页显示语言设置,就能显示不同语言文字的原因。struts在session中存放的这个local对象取名为Globals.LOCAL_KEY的值,因此利用这个原理我们就可以用编程的方式来手工切换整个应用系统的语言。
struts国际化问题的一个小例子:(根据下拉列表的选择显示不同语言的网站)
1,首先针对不同的语言,写不同的MessageResources.properties文件,比如说简体中文是
MessageResources_zh_CN.properties,英文就是MessageResources_en_US.properties,然后对这些配置信
息文件同样用native2ascii工具处理一次(打开cmd输入native2ascii然后把要显示的中文输入回车就ok了),把非ASCII码统统转为Unicode编码。 放在classes文件夹下你指定的地方,这里是放在/web-inf/classes/com/下,
我写的两个文件是;1,MessageResources_en_US.properties:内容如下:
version=hello,you have choose the english version
MessageResources_zh_CN.properties内容如下:
version=\u4f60\u597d,\u4f60\u5df2\u7ecf\u9009\u62e9\u4e86\u4e2d\u6587\u7248\u672c
(要注意的是:文件名中的zh和en代表语言的不能写错,而CN和US代表国家可以不写)
2,在struts-config.xml加入 <message-resources parameter="com.MessageResources" />注意com为包名。
3,测试页面:index.jsp
<form name="form1" method="post" action="chooselocal.do">
<select name="il8n_info">
<option value="zh">中文版</option>
<option value="en">英文版</option>
</select>
<input type="submit" value="submit"><p>
</form>
4.相应的actionform:
package com.il8n;
import org.apache.struts.action.ActionForm;
public class il8nActionForm extends ActionForm {
private String il8n_info;
public String getIl8n_info() {
return il8n_info;
}
public void setIl8n_info(String il8n_info) {
this.il8n_info = il8n_info;
}
}
5:相应的acrion:
package com.il8n;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.Globals;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
public class il8nAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
il8nActionForm il8naf = (il8nActionForm)form;
ActionMessages messages = new ActionMessages();
Locale locale = null;
if("zh".equals(il8naf.getIl8n_info())){
locale = new Locale("zh","CN");
}else if("en".equals(il8naf.getIl8n_info())){
locale = new Locale("en","Us");
}
this.setLocale(request, locale);//将local对象放到session里也可以用下面的方法:
//request.getSession().setAttribute(Globals.LOCALE_KEY, locale);//英文struts是把local对象放在了session里面
return mapping.findForward("success");
}
}
6:struts-config.xml中的配置:
<form-beans>
<form-bean name="il8nActionForm" type="com.il8n.il8nActionForm"></form-bean>
</form-beans>
<action-mappings>
<action path="/chooselocal"
type="com.il8n.il8nAction"
name="il8nActionForm"
scope="request"
>
<forward name="success" path="/index.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="com.MessageResources" />然后在index.jsp中使用<been:message key="version"/>来调用version的值显示不同的语言。(当然要引入相关的tag)
也就是当你选择中文版然后提交就会显示
你好,你选择了中文版
当你选择英文版的时候就会显示:
hello,you have choose the english version
试一下吧!
发表评论
-
Tomcat解决URL传中文的方法
2007-09-28 19:03 830在TOMCAT-HOME/conf/server.xm ... -
介绍两个jsp上传组件commons-fileupload和SmartUpload(部分来自网页)
2007-09-28 21:39 1078第1个上传组件commons-fileupload ==== ... -
仍一个能增减行的javascript
2007-10-08 18:52 711<html><head> <s ... -
jFreeChart(动态web应用)
2007-10-09 14:12 736JFreeChart 1.0.2的动态应用,根据数据库中的 ... -
jFreeChart初探(静态应用)
2007-10-09 14:17 563初学JFreeChart,整理一个例子:(部分来自网页) ... -
初探tomcat连接池
2007-10-11 18:30 530相关工具: tomcat版本5.5 ,mysql,drp(数据 ... -
初探struts中的(Converter)的一个例子
2007-10-18 19:09 555Struts中的Converter可以将一些特定对象转换成字符 ... -
other
2007-10-19 18:23 615最近正在抽时间研究jive的源代码,如果有谁想 ... -
struts中自定义taglib函数例子
2007-10-21 12:43 616首先建立自己的函数:package com.struts; ... -
一个从另一个打开页面返回值的javascript例子
2007-11-16 14:52 734今天写项目的时候用到了需要从另一个打开页面取值的j ... -
struts中利用ExceptionHandler处理异常
2007-11-22 13:33 630在Struts1.X的版本中加入了对异常的处理 ... -
DWR学习及应用
2007-11-25 20:31 614DWR是一个开源的类库,可以帮助开发人员开发包含AJAX技术 ... -
java群
2007-12-03 20:25 63刚健了一个java群,用于大家互相探讨java,共同促进学习, ... -
ibatis学习(三)---ibatis与spring的整合
2007-12-07 18:26 1970Spring通过DAO模式,提供了对iBATIS的良好支持 ... -
ibatis学习(二)--ibatis使用介绍
2007-12-07 18:27 685SqlMapClient对象 这个对象是iBatis操作 ... -
ibatis学习(一)--ibatis介绍以及用例
2007-12-07 18:31 616介绍 iBATIS是以SQL为中 ... -
dwr实现级联菜单
2007-12-08 10:39 753Dwr的介绍请见:http://www.blogjava. ... -
JSF学习及应用一-(安装配置)
2007-12-11 09:38 704JSF(JavaServer Faces) JSF是JA ... -
JSF学习及应用二-(用例)
2007-12-11 09:41 541实例1 1、 创建一个JSP 2、 在相同的路径下,用. ... -
JSF学习及应用三-(与spring整合)
2007-12-11 09:46 624JSF与Spring整合的原理是获得彼此的上下文引用,以此 ...
相关推荐
自己写的 本人也是刚刚接触struts2 所以写的东西比较适合刚刚接触struts2的新人。。
一个超级简单的Struts2国际化demo
整理struts2国际化例子源码整理struts2国际化例子源码整理struts2国际化例子源码
这个是我自己学习三大框架中的struts2中的关于国际化的一个实例,个人感觉很有实际作用,需要导入7个jar包,注意!!javaasist.jar包一定要。 这中间还有关于Validation的代码在这里面,被注释了,不过需要一定的...
struts例子struts例子struts例子struts例子struts例子struts例子struts例子struts例子struts例子struts例子struts例子struts例子struts例子struts例子struts例子
Struts2国际化的实现原理;简单的struts2国际化实现过程的讲解
在struts2里实现国际化,完成登录页面的国际化(英文和中文)。
struts2 做的小例子,里面有完整的解决方案 架构是struts2 spring,hibernate
struts2标签库和国际化的使用,你会了吗?如果还不懂请看这里。
struts2实现国际化,这是单位技术培训时的源程序,和大家共享
struts国际化struts国际化struts国际化
Struts国际化例子,完整版可运行。 Struts国际化例子,完整版可运行。
用MyEclipse工具实现的一个struts2国际化,用于刚接解struts2中i18n的同学学习。很好的代码,深入浅出。
struts1 国际化 源代码 struts1 国际化 工程
Struts基本用法之国际化
经典的struts中文问题,国际化问题终极解决方案
这是一个struts2 freemarker 国际化的小例子
struts2例子struts2例子struts2例子struts2例子struts2例子struts2例子struts2例子struts2例子
Struts数据源连接和国际化 资源源于不但搜索,自由源于不但努力
struts2拦截器和国际化教材源文件供大家学习