总结
经过为期近两个月的项目练习,了解了开发一个实际项目它的具体流程及在每一个阶段都做哪些工作。在技术上进一步一步熟悉了
Struts
框架中的相关内容。在这里我想谈一下有关
Validator
框架验证和
Struts
标签的相关内容。
1.
Validator
验证框架
Validator
框架验证已经克服在
ActionForm Bean
的
validate
()方法中写验
规则的缺点
:
缺少灵活性、重复编程。它可以通过配置验证规则(
validator.xml
)无需编程来实现对标单的验证。
一个具体的
Validator
框架验证主要涉及到以下内容:
validator-rules.xml
、
validator.xml
、
struts-config.xml
及
application.properties
等文件。
validator-rules.xml
文件包含了一组通用验证规则,适用于所有的
Struts
应用。当然我们也可以改写该文件,来修改默认的验证规则或对默认规则作相应的扩展。
在该文件中主要包括
<validator>
元素,其具体格式如下:
<validator name="required"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
dependes=””
msg="errors.required"/>
其中,
name
属性为验证名、
classname
验证规则引用的类、
method
引用类的方法、
methodParams
验证方法包含的参数、
msg
指出当当验证失败时来自于
application.properties
中的消息
key
、
dependes
改验证执行之前必须执行的验证。
validator.xml
文件是针对具体的
Struts
应用来对其相应得
ActionForm
配置具体的验证规则。它主要包括
<form-validtion>
元素,其具体格式如下:
<form-validtion>
<global>
<!-- An example global constant
<constant>
<constant-name>ruler</constant-name>
<constant-value>^[
ァ
-
゚
]*$</constant-value>
</constant>
</global>
<formset>
<form name="StoreInformation">
<field property="codeAddressShopKana"
depends="required,mask">
<arg0 key="lable.codeAddressShopKana" resource="true"/>
<arg1 name="mask" key="lable.codeAddressShopKana"
resource="true"/>
<arg2 name="mask" key="lable.kana" resource="true"/>
<var>
<var-name>mask</var-name>
<var-value>${ruler}<var-value>
</var>
</field>
</form>
</formset>
</form-validtion>
其中,子元素
<global>
用来定义常量表达式,在所在文件的其它地方可以引用它,具体格式为:
${ruler}
。子元素
<formset>
包括两个子元素,
<from>
和
<constant>
。
元素
<form>
又包括
<field>
元素,每一个
<field>
元素对应
ActionForm Bean
中的一个属性。该元素包含以下属性
property
用于指定
ActionForm Bean
中的属性名,
depends
用于指定该属性引用的验证规则。
<field>
元素还可以包括
<msg>
子元素包括以下属性
name
用于指定验证规则的名字,
key
当
resource
为
true
时指定消息
key
,且消息
key
在
application.properties
中必须存在。当
resource
为
false
时,
key
直接指定消息文本。
<field>
元素的另一子元素
<arg>
,该元素用于指定
application.properties
中的消息文本中的变量的值。
<field>
元素的
<var>
用于向验证规则传递参数。它的子元素
<var-name>
指定验证规则的名字,子元素
<var-value>
指定被传参数的值。
struts-config.xml
文件也要作相应的修改,即把要做验证的
ActionForm Bean
所在的
Action
的属性
validate
设为
true
即可。另外为了保证验证正常进行应确保
ActionForm Bean
是继承
ValidatorForm
或
DynaValidator
父类。
为了显示出错误信息应在界面上使用
<html:errors />
显示错误信息。另外也可将错误信息以对话框形式弹出,其操作如下:在
jsp
页面添加两项内容:第一,
<html:javascript formName=”checkForm”/>
;第二,
<html:form action=”/path” οnsubmit=”return validateCheckFrom(this)”>
。这样就把后台验证改为了前台验证。
以上为我在本次练习中对
validator
框架验证的理解,更多的内容还有待于在今后的工作中进一步学习。