Struts国际化

   国际化的作用只有在你开发的软件要应用到不同的语言环境时才显示出作用,这样只需改一下资源文件就行了,如果只需中文和英文的情况,就在.jsp里设置UTF-8或gb2312就行了,可以下载jinto这个国际化插件。

一种方法是在处理请求前,先设置HttpServletRequest对象的字符编码:
 request.setCharacterEncoding("gb2312");
还要一种办法是对用户输入的请求数据进行编码转换:
  String  clientData=request.getParameter("clientData");
  if(clientData!=null)
     clientData=new String(clientData.getBytes("ISO-8859-1"),"GB2312");
处理响应结果的编码
   在servlet中  response.setContenType("text/html;charset=GB2312");
   在JSp中 <%@ page contentType="text/html";charset=GB2312"%>
   在HTML中
     <head>
       <META HTTP-TQUIV="Content-Type" CONTENT="text/html;charset=GB2312">
     </head>
Struts 框架并没有直接使用java语言提供的ResourceBundle类。在Struts框架中提供了两个类
    org.apche.struts.util.MessageResources
    org.apache.struts.util.PropertyMessageResources
这两个类具有和ResourceBundle相似的功能,其中PropertyMessageResources是MessageResources类的子类
 <message-resources parameter="application"/>默认的不带key,默认的资源文件应该取名为application.properties.如果应程序需要支持中文用户,可以再创建一个包含中文消息的资源文件,名为:application_ch_CN.properties or applliation_ch.properties.当Struts处理Locale为中文的用户请求时,它会依次搜索如下资源文件:application_ch_CN.properties application_ch.properties
application.properties Struts框架首先在WEB-INF/classes/目录下寻找application_ch_CN.properties文件然后。。。。。
  通过编程来访问Resource Bundle  在ACTion基类中定义了getResources(request)方法,它可以返回默认的MessageResource对象,如果想获得特定的MessageResources对象,可以调用Action基类的getResources(request,key)方法,其中参数key和Struts配置文件的<message-resources>元素的Key属性对应。得到MessageResources对象后,就可以通过它的方法来访问消息文本。例如:
   Locale locale=getLocale(request)
   MessageResources messages=getResources(request);
   String msg=messages.getMessage(locale,"hello.no.username.error");可以去掉locale用默认的。 许多组件和ResourceBundle绑定在一起。如:ActionMessage类的<html:errors>标签,<bean:message>标签。ActionMessage(java.lang.Stringkey,java.lang.Object[]values),values参数用于替换复合消息中的参数。
 定义按钮:<html:submit property="submit" value="submit"/> 为了使按钮的Lable支持多种语言,
 <html:submit property="submit">
    <bean:message key="heell.jap.page.submit"/>
 </html:submit>
  对图片国际化 <html:img page="/std.gif" alt="powered"/>
  改成:<html:img pageKey="hello.jsp.page.sture" altKey="hello.jsp.page.struts"/>
    创建临时中文资源文件 假定名字为application_temp.properties  JDK中提供了native2ascii 命令,它能够实现字符编码转换,将生成按GB2312编码的中文资源文件application_zh_CN.properties:
   native2ascii -encoding gb2312 application_temp.properties application_zh_CN.properties
创建英文资源文件,只需复制默认文件,然后把新的文件改成application_en.properties

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值