概述
通过阅读本文你将掌握:
Action对请求参数的处理;
Struts2框架中的类型转换;
Struts2框架对请求参数的校验。
struts2中获取请求参数
1、属性驱动:
1.1、直接将action做一个model,声明变量,提供getXX()/setXX()方法。
结果:
缺点:需要单独定义JavaBean,将action中的属性复制到JavaBean中。
优点:easy。
1.2、在action中声明一个model
结果:
实现原理:
通过struts2的拦截器实现:
2、模型驱动
让Action类实现ModelDriven接口,重写getModel()方法,在Action类中实例化一个model对象,然getModel()方法返回此对象。
将数据封装到集合中
1、封装到List集合中:
在User类中添加
jsp页面的书写:
2、封装到Map集合中:
在User类中添加:
jsp书写方法:
控制台结果:
struts2中的类型转换
在输入以上所示日期格式后登陆出现错误。因为没有对应格式的类型转换器。
struts2提供了大量的内部类型转换器,用来完成数据类型转换的问题。每个类型转换器的跟接口为TypeConverter.
自定义类型转换器
步骤:
1、创建一个类实现TypeConverter接口;
2、重写接口中的方法,实现类型转换操作;
3、注册类型转换器。
由于实现TypeConverter接口所需重写方法参数太多了(6个),所以我选择继承StrutsTypeConverter这个类,重写它的方法。
更重要的原因是这个类将页面传递的数据封装,以及action中的数据怎样在页面上显示做了分离。
仅仅是如此是无法完成转换的,还需要注册类型转换器。
1、局部类型转换器
1.1、针对于action:
配置文件所在位置及名称:
在Action类所在包中创建文件名为:Action类名-conversion.properties的文件。
配置格式:属性名=类型转换器的全类名
1.2、针对于model
配置文件所在位置及名称:
在Model所在包中创建文件名为:Model名-conversion.properties的文件。
配置格式:属性名=类型转换器的全类名
2、全局类型转换器
配置文件所在位置及名称:
在src包下创建文件名为:xwork-conversion.properties的文件。
配置格式:要转换的类型全名=类型转换器的全类名
当类型转换错误时,页面如下所示:
提示我们没有对应的input视图,所有我们要为转换错误配置一个input视图。
思考:为什么会要求向input视图上跳转呢?
在自定义类型转换器中,转换错误,页面没有向input视图跳转?
在自定义类型转换器中必须抛出异常才可以。
Struts2框架提供的数据校验
在Struts2框架中我们实现数据校验有两种方法:
1、手动校验
要求:Action类必须继承ActionSupport类才能提供校验。重写validate()方法
通过测试我们发现validate()方法先于请求处理方法执行。
页面上展示错误信息:
发现问题:
validate()方法总是会执行,即使是某个不需要校验的方法。这当然不行
解决方案:
创建一个名为validate+请求处理方法名()的方法。
例如validateLogin()方法,此方法只会对注册这一请求进行校验,对regist请求不会校验。
2、配置校验
struts2的校验框架已经完成了很多校验方法,我们在使用时只需要调用即可。
要求:继承ActionSupport类
如何配置?
位置:与Action类放在同一个包下;
名称:Action类名-validate.xml;
所需约定:
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
约定可在xwork-core-2.3.15.3.jar中xwork-validator-1.0.3.dtd中查找到。
书写格式:
1、根元素:<validators>
2、子元素:<field name=”属性名称”></field>
3、<field>子元素:<field-validator type=”校验器”>指定校验器。
示例:
Struts2中的内置校验器:
校验器介绍:
问题:在配置校验中如何对特定的请求处理方法执行校验?
答:修改校验文件名:action类名-请求处理方法名-validate.xml
最后
以上就是懵懂蓝天为你收集整理的Struts2框架学习---TWO的全部内容,希望文章能够帮你解决Struts2框架学习---TWO所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复