struts 和I18n:
就是 International 后面18个字符。。具体意义省略。
其实现原理是:
服务端维护多套对应的资源文件,对应于不同的语言(这些资源文件独立于代码存在)。
访问发送到服务器时,服务器自动识别客户端所使用的语言环境。
服务器根据客户的语言环境选择合适的资源,渲染入视图,然后返回给客户端。
struts 实现I18n
struts的struts-config 里可以定义一个
<message-resources> element, 该标志能够导致struts引用到不同的资源文件。
实现的方式很简单:
MessageResources_zh_CN
message.hello=hello..(cn)
sturts-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<form-beans>
</form-beans>
<global-exceptions>
</global-exceptions>
<action-mappings>
<action path="/view"
type="com.bss.test.i18n.ActionI18N">
<forward name="success" path="/ui/view.jsp" redirect="false" />
</action>
</action-mappings>
<message-resources key="lala" parameter="com.bss.test.i18n.MessageResources" />
</struts-config>
view.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<b>This page is for test I18n.<b><br>
Message:
<bean:message key="message.hello" bundle="lala"/>
</body>
</html>
这里,这个<message-resources key="lala" parameter="com.bss.test.i18n.MessageResources" />
和<bean:message key="message.hello" bundle="lala"/>中的lala想对应,也就是说,可以有多个不同的MessageSources.
只要他们<message-resources key="lala" parameter="com.bss.test.i18n.MessageResources" />中的key不一样就可以了。
可以自由的安排配置文件的部署。