前言
Google浏览器,通过修改该浏览器的语言设置,从而改变此网页的语言显示,就像我们常用的翻译软件,输入想要的语言,立马就变成自己想要的样子,至于翻译的规范不规范,那得那语言转换规范了。
原来struts支持这个功能的转换,其中还还涉及到了设计模式的对扩展开放,对修改关闭的原则。想想我们以前用的抽象工厂加反射很容易的转换了数据库。还有加配置文件,很巧妙的转换了数据库。
内容
需求:
1、通过需求实现显示界面语言自动转变。
2、实现过程中,不应该每次修改内部实现,保证接口对接实现。
说明:这个实现不涉及Action方法内部的代码实现,只需要对jsp(视图)和struts-config.xml配置文件进行修改即可,添加一些属性文件(用来和浏览器语言设置做匹配)。
demo
- “zh”中文版属性文件
filename is:MessageResources_zh_CN.properties
login.form.field.username = \u7528\u6237
login.form.field.password = \u5bc6\u7801
login.form.button.login = \u767b\u5f55
- “en”英文版属性文件
filename is:MessageResources_en_US.properties
login.form.field.username = User Name
login.form.field.password = Password
login.form.button.login = Login
- "default"默认语言版属性文件
filename is:MessageResources.properties
login.form.field.username = User Name
login.form.field.password = Password
login.form.button.login = Login
- struts-config.xml:
<struts-config>
<message-resources parameter="resources.MessageResources"/>
</struts-config>
- jsp(view)
<%--
Created by IntelliJ IDEA.
User: zhou
Date: 2017/3/11
Time: 8:32
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="login.do" method="post">
<bean:message key="login.form.field.username"/>: <input type="text" name="username"><br>
<bean:message key="login.form.field.password"/>: <input type="password" name="password"><br>
<input type="submit" value="<bean:message key="login.form.button.login"/>">
</form>
</body>
</html>
- 页面显示效果
"zh"版和“en”版
小结
万般皆有理啊。
感谢您的宝贵时间···