Struts编码国际化

Struts编码国际化

1.       struts国际化的配置

       *struts-config.xml文件中加入:

<message-resources parameter="MessageResources" />

2.         提供不同版本的国际化资源文件,中文需要采用nativeascii转换成unicode

3.       jsp中采用<bean:message>标签来读取国际化消息文本

4.       了解利用struts默认将locale放到session中的特性,完成采用编程的方式切换语言设置

5.       消息文本的国际化,共有三个步骤:

       *创建国际化消息

       *传递国际化消息

       *显示国际化消息

如何创建国际化消息

       理解ActionMessageActionMessages两个对象的区别

如何传递国际化消息?

       调用saveMessage()传递普通消息,调用saveErrors传递错误消息

如何显示国际化消息?

       *通过<htmlmessages>标签显示消息(可以显示普通消息和错误消息)

       *通过<htmlerrors>显示消息(只能显示错误消息)

一个实例:

在此MessageResources_zh_CN.properties配置文件中内容如下:

user.title=/u7528/u6237/u767b/u9646

user.username=/u7528/u6237

user.password=/u5bc6/u7801

user.button.login=/u767b/u9646

在此MessageResources_en_US.properties配置文件中内容如下:

user.title=User Login

user.username=User Name

user.password=Password

user.button.login=Login

在此MessageResources.properties(即缺省文件)配置文件中内容如下

user.title=User Login

user.username=User Name

user.password=Password

user.button.login=Login

jsp页面引入向的标签

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

实例:

<html>

  <head>     

    <title><bean:message key="user.title"/></title>

  </head>

   <body>

  <h1><bean:message key="user.username"/></h1>

  <hr>

   <form action="user.do" method="post">

   <bean:message key="user.username"/>:<input type="text" name="username" value="${userform.username}" ><br>

   <bean:message key="user.password"/><input type="password" name="password" value="${userform.password}"><br>

   <input type="submit" value="<bean:message key="user.button.login"/>">

   </form>

  </body>

</html>

 

了解利用struts默认将locale放到session中的特性完成采用编程的方式切换语言设置

public ActionForward execute(ActionMapping mapping, ActionForm form,

           HttpServletRequest request, HttpServletResponse response)

           throws Exception {

       String lang = request.getParameter("lang");

       //获取当前Locale

       Locale currenLocale = Locale.getDefault();

       if("zh".equals(lang)){

           currenLocale = new Locale("zh","CN");

       }else if("en".equals(lang)){

           currenLocale = new Locale("en","US");

       }

       //获取session     request.getSession().setAttribute(Globals.LOCALE_KEY, currenLocale);

       return mapping.findForward("index");

    }

 

 

消息文本国际化的小例子:

//1.创建国际化消息文本

ActionMessage message = new ActionMessage("user.not.found",username);

messages.add("error1",message);

//2.传递国际化消息文本

this.saveErrors(request, messages);

return mapping.findForward("error");

//3.显示国际化消息

<html:messages id="error" property="error1">

        <bean:write name="error"/>

</html:messages>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值