第8章 Struts 2类型转换和输入校验【首页】杜老师


Struts 2备忘

struts-2.3.16.3+hibernate4.2.4+spring4.0.2整合包

1. Struts 2内建类型转换器

1.1 基本数据类型转换器(计算器)

(1) 创建项目01JavaWeb08, 01学号 java EE 5.0, 复制apps\struts2-blank-2.3.16.3\WEB-INF\lib下9个包到WEB-INF\lib

(2) 从apps\struts2-blank-2.3.16\WEB-INF\web.xml中复制粘贴有关filter部分到WebRoot\WEB-INF\web.xml中

(3) src创建cn.duzhaojiang.action包,并创建CountAction01.java

(4) 创建入口页面[计算器]文件WebRoot\CounterInput01.jsp

创建[计算结果]页面文件WebRoot\CounterOutput01.jsp

(5) 配置src\struts.xml文件

(6) 创建首页文件WebRoot\index.jsp

1.2 基本数据类型的封装类转换器(计算器)

(1) 在cn.duzhaojiang.action包,复制CountAction01.java为CountAction2_01.java,修改double --> Double

(2) 创建入口页面[计算器]文件,在WebRoot复制CounterInput01.jsp为CounterInput2_01.jsp,修改action="count.action" -->action="count2.action";结果页面文件仍用WebRoot\CounterOutput01.jsp

(3) 追加配置src\struts.xml文件

(4) 在首页文件WebRoot\index.jsp中加入下列代码,部署测试
<a href="CounterInput2_01.jsp">1.2 基本数据类型的封装类转换器</a>

1.3 数组类型转换器(个人爱好)

(1) 在cn.duzhaojiang.action包创建MyLikeAction01.java

(2) 创建入口页面[个人爱好]文件WebRoot\LikeInput01.jsp

创建结果页面[显示个人爱好]文件WebRoot\LikeOutput01.jsp

(3) 追加配置src\struts.xml文件

(4) 在首页文件WebRoot\index.jsp中追加下列代码部署测试
<a href="LikeInput01.jsp">1.3 数组类型转换器(个人爱好)</a>

1.4 集合类型转换器(个人爱好)

(1) 在cn.duzhaojiang.action包创建MyLikeAction2_01.java

(2) 创建入口页面[个人爱好]文件,在WebRoot复制LikeInput01.jsp为LikeInput2_01.jsp,修改action="mylike.action" -->action="mylike2.action";结果页面[显示个人爱好]文件仍用WebRoot\LikeOutput01.jsp

(3) 追加配置src\struts.xml文件

(4) 在首页文件WebRoot\index.jsp中追加下列代码部署测试
<a href="LikeInput2_01.jsp">1.4 集合类型转换器(个人爱好)</a>

1.5 日期类型转换器(生日)

(1) 在cn.duzhaojiang.action包创建DateAction01.java

(2) 创建入口页面[输入出生日期]文件WebRoot\DateInput01.jsp

创建结果页面[当前年龄]文件WebRoot\DateOutput01.jsp

(3) 追加配置src\struts.xml文件

(4) 在首页文件WebRoot\index.jsp中追加
<a href="DateInput01.jsp">1.5 日期类型转换器(生日)</a>

2. 自定义类型转换器

(1) 创建bean: [点]Point01

创建cn.duzhaojiang.bean,创建[点]Point01.java

(2) 创建自定义数据类型转换1

创建cn.duzhaojiang.converter,创建转换器PointConverter01

(3) 创建自定义数据类型转换器2

在cn.duzhaojiang.converter,创建转换器PointConverter2_01.java

(4) 创建action

在cn.duzhaojiang.action,创建转换器PointAction01.java

在cn.duzhaojiang.action,创建局部转换器注册文件PointAction01-conversion.properties

(5) 创建录入[输入坐标]、[输出坐标]页面

在WebRoot\创建PointInput01.jsp

在WebRoot\创建[输出坐标]页面PointOutput01.jsp

(6) 配置struts.xml文件

在配置文件src\struts.xml package中增加

(7) 修改index.jsp

在首页文件WebRoot\index.jsp中追加
<a href="PointInput01.jsp">2. 自定义数据类型转换器(点)输入</a>
部署,进行合法数据和非法数据测试

(8) 创建全局转换器注册文件

在cn.duzhaojiang.action删除局部转换器注册文件PointAction01-conversion.properties文件名

在src创建全局转换器注册文件xwork-conversion.properties文件名(使用PointConverter01转换器),部署,进行合法数据和非法数据测试

(9) 显示中文化出错信息

3. Struts 2输入校验(validate)

web服务器端输入校验的重要性

3.1 [年龄]输入校验

(1) 在cn.duzhaojiang.action创建AgeAction01.java

(2) 创建入口页面[输入年龄]文件WebRoot\AgeInput01.jsp

(3) 创建入口页面[输入年龄]文件WebRoot\AgeInput1_01.jsp

(4) 创建入口页面[输入年龄]文件WebRoot\AgeInput2_01.jsp

(5) 创建[输出年龄信息]文件WebRoot\AgeOutput01.jsp

(6) 在配置文件src\struts.xml package中增加

(7) 在首页文件WebRoot\index.jsp中下列代码,部署、测试

3.2 [用户注册]输入校验

(1) 在cn.duzhaojiang.action创建RegisterAction01.java

(2) 创建入口页面[用户注册]文件WebRoot\Register01.jsp

(3) 显示[用户信息]网页WebRoot\ShowUserInfo01.jsp

(4) 在配置文件src\struts.xml package中增加

(5) 在首页文件WebRoot\index.jsp中下列代码,部署、测试

4. Struts 2校验框架

4.1 校验规则文件的文件名和格式

(1) 文件名:action类名-validation.xml

(2) struts2.1.6格式

(3) struts2.3.16格式

4.2 校验器配置风格

(1) 字段校验器配置风格

(2) 非字段校验器配置风格

4.3 内建校验器注册文件

struts-2.3.16.3\src\xwork-core\src\main\resources\com\opensymphony\xwork2\validator\validators\default.xml

4.4 常用的内建校验器

(1) 必填校验器

(2) 整数校验器

(3) 日期校验器

(4) 邮箱地址校验器

(5) 字符串长度校验器

5. 联系人添加模块的实现(实训)

5.1 联系人添加(实训)

(1) 在cn.duzhaojiang.action创建LxrAdd01.java

(2) 创建[联系人录入]页面文件WebRoot\LxrAdd01.jsp

(3) 显示[联系人信息]网页WebRoot\LxrOutput01.jsp

(4) 在配置文件src\struts.xml package中增加

(5) 在首页文件WebRoot\index.jsp中下列代码,部署、测试

5.2 联系人添加(校验规则)

(1) 在cn.duzhaojiang.action创建LxrAdd01_.java

(2) 在cn.duzhaojiang.action创建LxrAdd01_-validation.xml

(3) 创建[联系人录入]页面文件WebRoot\LxrAdd01_.jsp

(4) 在配置文件src\struts.xml package中增加

(5) 在首页文件WebRoot\index.jsp中下列代码,部署、测试

6. 上机题(实训)

6.1 单自定义类型[3D点]的输入校验

(1) 在cn.duzhaojiang.bean,创建[点]Point3D01.java

(2) 在cn.duzhaojiang.converter,创建转换器Point3DConverter01

(3) 创在cn.duzhaojiang.action创建转换器Point3DAction01.java

在cn.duzhaojiang.action创建局部转换器注册文件Point3DAction01-conversion.properties

(4) 创建录入[输入3D坐标]、[输出3D坐标]页面

在WebRoot\创建Point3DInput01.jsp

在WebRoot\创建[输出坐标]页面Point3DOutput01.jsp

(5) 配置struts.xml文件

在配置文件src\struts.xml package中增加

在首页文件WebRoot\index.jsp中追加
<a href="Point3DInput01.jsp">6.1 单个Point3D的录入和转换(上机题2)</a>
部署,进行合法数据和非法数据测试

6.2 多自定义类型[3D点]的输入校验

(1) 创在cn.duzhaojiang.action创建转换器Point3DAction2_01.java

(2) 创建录入[多点3D坐标]、显示[多点3D坐标]页面

在WebRoot\创建Point3DInput2_01.jsp

在WebRoot\创建[输出坐标]页面Point3DOutput2_01.jsp

(3) 配置struts.xml文件

在配置文件src\struts.xml package中增加

(4) 配置注册文件、部署测试

(9) 显示中文化出错信息

6.3 性别输入(上机题5:输入校验)

(1) 创在cn.duzhaojiang.action创建转换器SexAction01.java

(2) 创建录入[性别]、显示[性别]页面

在WebRoot\创建SexInput01.jsp

在WebRoot\创建[输出性别]页面SexOutput01.jsp

(3) 配置struts.xml文件

在配置文件src\struts.xml package中增加

在WebRoot\index.jsp中追加: <a href="SexInput01.jsp">6.3 性别输入(上机题5:输入校验)</a><br />,部署、进行合法数据和非法数据测试

6.4 出生日期和年龄输入(上机题6:validate())

(1) 创在cn.duzhaojiang.action创建BirthdayAgeAction01.java

(2) 创建录入[生日年龄]、显示[生日年龄]页面

在WebRoot\创建BirthdayAgeInput01.jsp

在WebRoot\创建[输出生日年龄]页面BirthdayAgeOutput01.jsp

(3) 配置struts.xml文件

在配置文件src\struts.xml package中增加

在WebRoot\index.jsp中追加: <a href="BirthdayAgeInput01.jsp">6.4 出生日期和年龄输入(上机题6:validate())</a><br />,部署、进行合法数据和非法数据测试

6.5 邮箱地址和网址输入(上机题7: 框架校验)

(1) 创在cn.duzhaojiang.action创建EmailAction01.java

(2) 创在cn.duzhaojiang.action创建EmailAction01-validation.xml

(3) 创建录入、显示页面

在WebRoot\创建EmailInput01.jsp

在WebRoot\创建输出页面EmailOutput01.jsp

(4) 配置struts.xml文件

在配置文件src\struts.xml package中增加

在WebRoot\index.jsp中追加: <a href="EmailInput01.jsp">6.5 邮箱地址和网址输入(上机题7: 框架校验)</a><br />,部署、进行合法数据和非法数据测试

6.6 密码和确认密码输入(上机题8: -validation.xml)

(1) 创在cn.duzhaojiang.action创建RepasswordAction01.java

(2) 创在cn.duzhaojiang.action创建RepasswordAction01-validation.xml

(3) 创建录入、显示页面

在WebRoot\创建PasswordInput01.jsp

在WebRoot\创建[输出]页面PasswordOutput01.jsp

(4) 配置struts.xml文件

在配置文件src\struts.xml package中增加

在WebRoot\index.jsp中追加: <a href="PasswordInput01.jsp">6.6 密码和确认密码输入(上机题8: -validation.xml)</a><br />,部署、进行合法数据和非法数据测试


返回章节目录