首页 > 代码库 > Struts2 第七章 国际化与数据验证[转]

Struts2 第七章 国际化与数据验证[转]

第七章  国际化与数据校验;

1.回顾

1)Struts2数据类型转换的基础工作;

2)内置转换器默认支持8个基本的数据类型自动转换;

3)自定义转换器的定 义和配置;

2.目标和重点

1)理解国际化与本地化的基本原理;

2)掌握Struts的国际化支持应用;

3)掌握Struts2中是validate和validateXXX方法验证;

4)掌握Struts2中验证框架在开发中的使用

3.难点

1) 国际化的基本原理和Struts2对国际化的支持应用,配置国际化

2) 掌握Struts2中是validate和validateXXX方法

3) 掌握Struts2中验证框架开发和使用

4.知识点内容讲解

4.1 国际化和本地化原理

如 今的发展趋势下,跨国的应用需要系统支持国际化,比如大的跨国公司的办公管理、国际性的网站,还有一些商业软件,在不同的国家和地区使用的文字不同,如果在不改变软件产品的情况下,让软件产品适用当地的语言环境就更好了,也就是说一个应用系统部署后,不管是中国的用户,还是美国的用户,在他们各自使用同一 个系统时,使用的是自己本地区的语言,这就是国际化。

Java本身就支持国际化,在java中定义了unicode,包含了世界各国的文字符号的编码,并且提供了相关的组件来实现国际化的需求,主要关注类的是

Locale                 获取本地环境

ResourceBundler  资源文件绑定

 

这2个类提供了java实现国际化的基本支持

 

1. 定义资源文件在src目录下applicationResource.properties,根据不同的国家和地区在定义该地区需要的资源文件,比如中国 的资源文件可以定义成applicationResource_zh_CN.properties,在这个文件中保存的是转换后的unicode字符

hello=\u4F60\u597D

welcome=\u6B22\u8FCE\u5149\u4E34, {0}\u767B\u5F55.

2.使用2个类来读取资源文件

技术分享

 

4.2 Struts2国际化

1、配置Struts2国际化资源文件applicationResource.properties

applicationResource_zh_CN.properties

2、配置struts.xml文件,增加常量定义

<constant name="struts.custom.i18n.resources" value="http://www.mamicode.com/applicationResource"></constant>

3、在标签中使用定义好的资源

<s:text name ="page.title"/>

<s:textfield name="userName" key="page.login.username"/>

<s:submit key="page.login.submit" />

Text标签用来输出普通文字name属性=资源名称

用户界面标签如textfield、submit标签的key属性=资源名称

Struts2的国际化是对java的国际化的一个封装,简化操作。

 

4.3 Struts2的输入验证

Struts2的输入验证有二种方式,一种是validateXXX方法验证,另一种是框架配置验证规则来验证,两种方法可以混用

 

4.3.1 方法验证

validateXXX方法验证时采用硬编码的方式,在代码中实现验证,Struts框架要求重写父类的validate方法,如果action是一个多方法动态调用的action,在实现validate方法时,方法名是“validate+自定义方法”的格式。

 

4.3.2 框架验证

Struts2框架还支持配置验证规则来对输入的数据进行验证

  • 需要建立一个验证规则的xml配置文件,
  • 必须建立一个以Action名称开头的-validation.xml
  • 必须与Action放在同一目录下
  • 验证规则配置文件需要遵守xwork-validator.dtd约束,dtd文件在xwork-core-2.x.x.jar包中 xwork-validator-1.0.x.dtd

    使用Struts2验证框架,页面需要使用Struts2的标签

 

Jsp页面

 技术分享

验证规则配置文件

 技术分享

 

5.作业

为自己的登录页面进行数据验证,配置验证规则的validate.xml文件,实现框架验证

Struts2 第七章 国际化与数据验证[转]