Struts2的数据应验框架(表单)

Struts2的数据验证框架(表单)

学这个纯属浪费时间。

    前几天面试,居然问了Struts2的数据验证。说实话,我不熟悉。只是以前做HelloWorld的时候继承过AntionSupport类,重写validate方法,这种实现。觉得应该还有其它实现。于是,搜索了一下便发现在Struts2的数据验证框架。研究了一下,发现绝对是鸡肋中的鸡肋。终于,发现了项目开发人员和框架开发人员、教学人员的区别。想起面试时那个java老师的神态,发觉很多框架开发人员开发出来一些不必要的功能来使自己的框架完美,却导致框架变得垃圾了。而教学人员则不会管开发用人现实,不管有用没用一起教,浪费了大好时光。哎,越是小的垃圾公司,越要发会的更多,胡用滥用。 中国的现实就是这样,是以把此次的无用功纪录下来,以作警示吧。

    Struts2的数据验证框架提供对基本数据的验证,但业务稍微复杂一点就无能为力了。因此 ,我说它绝对是鸡肋中的鸡肋 。或许积累鸡肋对“见多识广”有用吧。

 

一、类名-[方法名-]validation.xml

配置验证的XML的格式:

1.类名-validation.xml:对该类配置的所有action均会进行验证。

2.类名-方法名-validation.xml:只对该Action会进行验证。

以上类名不带包名。如果验证不通过会跳转到action配置的<resulte name="input ">路径值

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC   
  "-//OpenSymphony Group//XWork Validator 1.0.2//EN" 
  "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators>
	<!-- 对应Action类里面的属性 -->
	<field name="userName">
		<!-- 必须输入 -->
		<field-validator type="requiredstring">
			<message>userName is required</message>
		</field-validator>
		<!-- 长度验证 -->
		<field-validator type="stringlength">
			<param name="minLength">3</param>
			<param name="maxLength">16</param>
			<param name="trim">true</param>
			<message>userName's length is 3-16</message>
		</field-validator>
	</field>
</validators>
 

二、验证错误显示

1.标签:<s:fielderror/>所有错误。HTML标签是<ul><li>标签

2.el表达式:${errors.userName[0]},userName是表单值,也是XML配置中的属性名。