struts2(6)
--------数据验证
在struts2中,任何一个普通的类,都可以作为"控制器"来使用,不需要强制继承任何类或实现任何接口
但为了控制器类(Action)的功能更加丰富,通常我们都会选择让Action类继承于ActionSupport,这个父类提供了许多其他的辅助功能
在提交表单的时候,如果没有给控件赋值,系统将会默认把""赋值给变量
"" --------代表,变量已经初始化, 已经分配内存空间,只不过,这个空间还没有存数据,这时候是可以调用变量的方法
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如果是以超连接进行后,没有给变量赋值,变量的值是 NULL,表示内存中,还没有为变量分配内存空间,是不能用来存数据,一调用它的方法,就会产生"空指针异常"
-----------------------------------------------------------------------------
某些方法去验证,某些方法不验证
重写用于验证的方法是:
public String reg(){
}
public String test(){
}
@override
public void validateReg(){
}
-----------------------------------------
struts2中的验证框架,用于验证数据有的效性
name不能为空
pwd长度3-6,两次密码一致
age 必须在1-120之间
email电子邮件格式
tel 电话号码格式
配置验证框架的步骤:
1、创建一个web工程,导入struts2的框架
2、在web.xml文件,配置*.jsp
3、编写jsp页面
4、编写baseAction继承于ActionSupport,并且在类中编写属性以及get,set方法
5、编写普通Action继承于BaseAction,并且编写对应的方法
6、编写jsp页面显示结果
7、编写struts.xml关联jsp与action
------------------------------------------------------------------------
8、在与Action同一个包中,生成验证配置文件,必须满足: 类名-validation.xml
9、在struts.xml文件中配置result的name为"input",用于指定返回的页面
<field name="name">
<field-validator type="requiredstring">
<param name="trim">true</param> 去掉空格
<message>验证失败以后要显示的消息</message>
</field-validator>
</field>
required:-----验证非字符串类型的数据类型非空
requiredstring: ----验证字符串类型的数据非空
int:--------------验证整数的区值范围(min,max)
date:-------------是否满足日期类型的格式
fieldexpression:----验证字段的格式,一般用于验证两个字段的值是否相同(expression)
email -------验证电子邮件的格式
stringlength:验证字符的长度 (minLength,maxLength)
regex:用于验证正则表达式 (expression)
在配置文件中,正则表达式的规则要以^开始,以$结束
^1(3|5|8)\d{9}$|^\d{3}-\d{8}$|^\d{4}-\d{7,8}$
<![CDATA[^1(3|5|8)\d{9}$|^\d{3}-\d{8}$|^\d{4}-\d{7,8}$]]>
如果配置文件名为:
类名-validation.xml
表示,对类中的每一个方法都会验证
#####################################################
如果配置文件名为:
类名-请求名称-validation.xml
表示,只对以指定请求名称来访问的方法进行验证
手动配置dtd文件tld标签
点 jar包》复制 (拖出去)xwork-validate-1.03>记事本打开
拷贝如下代码:
"-//OpenSymphony Group//XWork Validator 1.0.3//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
在java类 \\d \\w
在xml文件中 \d \w
<![CDATA[表达式]]>
<param name="expression"><![CDATA[表达式]]></param>
启用“短路验证”-----前面规则不通过,后面规则不运行
<field-validator type="requiredstring" short-circuit="true">
如果要验证ShwAction类中的方法,需要在与ShwAction类同一个包中创建一个配置文件,并且,配置文件的名称规必须满足:
类: ShwAction.java
配置文件: 类名-validation.xml (ShwAction-validation.xml)
------------------------------------------------------------------------------
struts2的验证框架有两种验证方式:
1、字段风格验证
特点:先声明要验证的字段,再指定,用哪些规则来验证
2、非字段风格验证:
特点:先声明规则,再指定,这些规则用于哪些字段
--------------------------------------
字段风格验证
<field name="要验证的字段">
<field-validator type="要使用的规则">
<message>验证失败以后要显示的消息</message>
</field-validator>
</field>
示例: requiredstring---用于验证字段串类型的数据非空(必须写内容)
<field name="name">
<field-validator type="requiredstring">
<param name="trim">true</param> 去掉空格
<message>验证失败以后要显示的消息</message>
</field-validator>
</field>
------------------------------
如果同时对一个字段采用两种风格验证,非字段风格验证优先