基于Struts2框架实现登录案例 之 程序国际化
2015-09-14 17:05
232 查看
国际化牵涉的知识非常多,这里只能简单的介绍,程序国际化的一般做法是:在jsp页面时,
不是直接输出信息,而是输出一个key值,该key值在不同语言环境下找到对应资源文件下的
对应信息,因此首先要创建满足不同国家或地域用户的资源文件。
1) 创建国际化资源文件
资源文件的命名规则:basename_语言代码_国家代码.properties,文件中包含一些键值对。
A、语言代码_国家代码:zh_CN、en_US等。
B、国际资源文件放在classes文件夹下。
MessageResourc[b]e_zh_CN.properties[/b]
MessageResource_en_US.properties
2)加载资源文件
Struts2提供非常多的加载国际化资源文件的方式,但最为常用的是加载全局的资源文件,具体方法如下:
A、配置struts.xml文件,添加一个struts.custom.i18n.resources常量。 形如:
<constant name="struts.custom.i18n.resources" value="资源文件basename"></constant>
B、创建struts.properties文件,添加一个struts.custom.i18n.resources常量。形如:
struts.custom.i18n.resources=资源文件basename
3)应用国际资源文件
A、输出国际化信息:<s:text name="messageKey">
B、表单标签国际化:通过指定key属性,即在表单中加:key="messageKey"
C、校验信息国际化:在基于硬编码方式下,通过getText()方法指定key来获得国际化校验信息提示;
基于验证框架下用message标签中的key属性来实现。形式为
在没开启客户端验证情况下:<message key="messageKey"></message>
在开启客户端验证情况下: <message >${getText("username.required")}</message>
浏览器效果,调整语言的先后顺序,依次设定显示中文和英文。
A:IE属性--常规--语言--〉中文:显示中文信息
B:IE属性--常规--英语(美国)--〉显示英文信息
不是直接输出信息,而是输出一个key值,该key值在不同语言环境下找到对应资源文件下的
对应信息,因此首先要创建满足不同国家或地域用户的资源文件。
1) 创建国际化资源文件
资源文件的命名规则:basename_语言代码_国家代码.properties,文件中包含一些键值对。
A、语言代码_国家代码:zh_CN、en_US等。
B、国际资源文件放在classes文件夹下。
MessageResourc[b]e_zh_CN.properties[/b]
MessageResource_en_US.properties
2)加载资源文件
Struts2提供非常多的加载国际化资源文件的方式,但最为常用的是加载全局的资源文件,具体方法如下:
A、配置struts.xml文件,添加一个struts.custom.i18n.resources常量。 形如:
<constant name="struts.custom.i18n.resources" value="资源文件basename"></constant>
B、创建struts.properties文件,添加一个struts.custom.i18n.resources常量。形如:
struts.custom.i18n.resources=资源文件basename
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.custom.i18n.resources" value="MessageResource"></constant> <package name="mypack" extends="struts-default"> <action name="first"> <result>first.jsp</result> </action> </package> <!-- Action必须放在指定的包空间中 --> <package name="struts2" extends="struts-default"> <!-- 定义login的action,其实现类为com.mhb.action.LoginAction --> <action name="userlogin" class="com.mhb.action.LoginAction2"> <!-- 定义处理结果与视图资源之间的关系 --> <result name="success">/login_success.jsp</result> <result name="failure">/login_failure.jsp</result> <result name="input">/login2.jsp</result> </action> </package> </struts>
3)应用国际资源文件
A、输出国际化信息:<s:text name="messageKey">
B、表单标签国际化:通过指定key属性,即在表单中加:key="messageKey"
C、校验信息国际化:在基于硬编码方式下,通过getText()方法指定key来获得国际化校验信息提示;
基于验证框架下用message标签中的key属性来实现。形式为
在没开启客户端验证情况下:<message key="messageKey"></message>
在开启客户端验证情况下: <message >${getText("username.required")}</message>
<%@ page language="java" pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <body> <center> <h3><s:text name="login.title"></s:text></h3> <%-- 登录表单,提交到login.action --%> <s:form action="userlogin"> <%--用户名输入框--%> <s:textfield name="username" key="login.username"></s:textfield> <%--用户密码输入框--%> <s:password name="userpwd" key="login.userpwd"></s:password> <%--登录按钮--%> <s:submit key="login.submit"></s:submit> <%--重置按钮--%> <s:reset key="login.reset"></s:reset> </s:form> </center> </body> </html>
浏览器效果,调整语言的先后顺序,依次设定显示中文和英文。
A:IE属性--常规--语言--〉中文:显示中文信息
B:IE属性--常规--英语(美国)--〉显示英文信息
相关文章推荐
- java解析xml的几种方式 DOM解析
- Spring 3 MVC and JSR303 @Valid example
- Android+Maven+Eclipse
- MyEclipse2014 设备 checkstyle、PMD、findbugs 最简单的方法 详细说明
- Java结合中的HashSet
- java try-catch以及循环的问题
- Java连接六类数据库技巧全攻略
- Java String 判断为空
- java面向对象概念
- java 生成和解析xml
- java中的session和cookie
- Spring数据初始化
- 终于有SpringMvc与Struts2的对比啦
- java String常见十大问题
- 编译hadoop的eclipse插件hadoop-eclipse-plugin
- json对象转化Java对象
- Spring IOC介绍
- eclipse中注释的代码依然会执行的解决方法
- Java多线程-线程的同步与锁
- elasticsearch-1.7.1 集群搭建