0
点赞
收藏
分享

微信扫一扫

Struts编码国际化

Struts编码国际化
1. struts国际化的配置​
*在struts-config.xml文件中加入:
<message-resources parameter="MessageResources" />​
2. 提供不同版本的国际化资源文件,中文需要采用nativeascii转换成unicode
3. 在jsp中采用<bean:message>标签来读取国际化消息文本​
4. 了解利用struts默认将locale放到session中的特性,完成采用编程的方式切换语言设置​
5. 消息文本的国际化,共有三个步骤:​
*创建国际化消息
*传递国际化消息
*显示国际化消息
如何创建国际化消息​
理解ActionMessage和ActionMessages两个对象的区别
如何传递国际化消息?​
调用saveMessage()传递普通消息,调用saveErrors传递错误消息
如何显示国际化消息?​
*通过<html:messages>标签显示消息(可以显示普通消息和错误消息)
*通过<html:errors>显示消息(只能显示错误消息)
一个实例:​
在此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>​

举报

相关推荐

0 条评论