话说回来,struts2主要有三块组成。struts2=标准的mvc控制+验证+sturs2的自带标签
而现在呢,我主要说说struts2的验证框架的使用。
1.什么是验证框架?
struts提供用于数据有效性验证的技术。这个就是验证框架.验证技术就是为了向数据库提供可靠的安全的数据.
2.为啥需要使用验证?
在这个问题之前,在提一个问题,同时解答我们所提出的问题:我们数据已经在客户端进行了js验证,为啥还要struts这个验证框架呢?
这是由于js验证只能在客户端验证,有时由于客户的操作不当,或者有人故意搞破坏(比如禁用js,然后向服务器提供数据)......如此这般,数据库中 存放的东西就不是那么好...程序也变得不安全起来了!所以我们还需要服务端验证技术了。
3.验证框架的好处?
好处就是对界面验证进行了第二次验证,保证了程序的安全性与健壮性。
4.验证的分类?
客户端验证技术(如js),服务器端验证(struts验证框架)
struts验证分类:手动验证(自定义验证),内置框架
5.如何使用struts验证?
1.手动验证步骤:
1.定义一个action的普通类,继承自ActionSupport.
2.重写validate()方法(这个方法是在Action方法之前执行的)
3.判断验证通过还是没有通过(通过系统判断:是否调用addFieldError()方法)
4.通过了,就执行目标方法,否则就跳转到<result name="input">/*.jsp</result>所在额页面哦
5.最后在错误页面导入struts的标签库,并使用对应的<s:fieldError fieldName="名称"/>来显示错误信息
注意:如果需要验证指定的方法,就不需要重写validate()方法,而是使用一个validateXxx()这样类型的方法了。如validateAdd(),这个方法就只验证添加的action了。
2.内置验证框架的步骤
1.定义一个Action的类,继承自ActionSupport
2.在Action中所在的包中,配置验证文件,此文件为xml文件(提示文件:xwork-core/work-validator-1.0.3.dtd中)
文件的命名规则:Action类名-validation.xml
3.通过了,就执行目标方法,否则就跳转到<result name="input">/*.jsp</result>所在额页面哦
4.最后在错误页面导入struts的标签库,并使用对应的<s:fieldError fieldName="名称"/>来显示错误信息
注意需要验证指定的方法:文件的命名规则:Action类名-访问action的名字-validation.xml