第二个版本我们给工程增加多语言功能。
实现多语言主要有三步:
1、新建多语言属性文件;
2、在struts-config.xml文件中设置该配置文件的路径;
3、jsp文件使用标签读取配置文件的文字
新建属性文件
application_zh.properties
application_en.properties
更新后的代码
Action和Form没有变化
application_zh.properties
login.username=\u7528\u6237\u540d login.password=\u5bc6\u7801 login.submit=\u767b\u9646
application_en.properties
login.username=User Name login.password=Password login.submit=Submit
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF">
<title>Login</title>
</head>
<body>
<html:form action="/login">
<bean:message key="login.username" />
<html:text property="userName" />
<br />
<bean:message key="login.password" />
<html:text property="password" />
<br />
<html:submit>
<bean:message key="login.submit" />
</html:submit>
</html:form>
</body>
</html>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>MyStruts02</display-name> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml </param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> </web-app>
strust-config.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"> <struts-config> <form-beans> <form-bean name="loginForm" type="com.coderdream.form.LoginForm" /> </form-beans> <action-mappings> <action path="/login" type="com.coderdream.action.LoginAction" name="loginForm" input="login.jsp" scope="request"> <forward name="success" path="/success.jsp" /> <forward name="failing" path="/failing.jsp" /> </action> </action-mappings> <!-- 加载资源文件 --> <message-resources parameter="com.coderdream.resources.application" /> </struts-config>
代码说明:
1、jsp 通过 login.username 这样的可以来取值;
2、web.xml 中添加 init-param 来指定 struts-config.xml 的位置;
3、struts-config.xml 中添加资源文件的位置
运行结果
中文环境
英文环境