(一)1:对于需要验证的每一个表单bean,在Validation.xml文件中添加一个新的<form>标签。<form>标签的name属性应该与表单bean的名字相同。
2:对于表单bean中每一个需要验证的字段,需要添加<field>子标签到<form>标签中。<field>标签的property属性应该等于想要验证的字段的名字。property属性支持嵌套的字段。
3:<field>标签还有一个depends属性,通过它可以指定想要对该字段进行的验证。验证的名字被描述为一个逗号分割的列表。
4:<field>标签可以包含可选的针对验证器使用的定制消息或者变量的子标签(例如,一个字段的最小长度)
5:确保表单bean是org.apache.struts.validator.validatorForm的一个子类。
(二)使用动态表单验证
1:声明动态表单:
为创建一个动态表单,只需要在struts-config.xml文件中声明它。
即在该表单的<form-bean>中:令Type属性为"org.apache.struts.action.DynaActionform"(ActionFrom 的一个子类)或者dynaActionForm子类
对每个在该表单上的属性添加<form property>标签,可以通过这种方式声明简单属性,索引属性,映射属性,嵌套属性
注:要声明一个索引属性:在该类名之后放置[]即可,还需要为数组指定大小
若需要长度灵活的数组方法有:1:忽略size属性 2:使用一个实现了java.util.List 接口的类(如ArrayList)作为 <form property>的类型
2:存取动态表单
在有些时候需要从动态表单读取(或写入)数据,有三个获取器可用:
get(String property)返回给定属性的一个Object值,针对简单属性
get(String property ,int index)返回具有给定索引的给定属性的Object值,针对索引属性
get(String property ,String )返回给定属性上针对给定的关键字的Object值,针对映射属性
类似的,还有他们各自对应的 set方法:set(String property,Object value)
set(String property,int index,Object value)
set(String property,String key,Object value)
如果使用了基本类型,则应期望一个基本类型对应的java类被返回和设置,如声明了一个int类型的属性,应返回一个Integer类型
3:给JavaBean传递属性:通过一个动态表单bean执行的事情是传递属性值到一个JavaBean实例中。
org.apache.commons.bean.beanUtils.copyProperties(myJavaBean,form)
以上代码把DynaActionForm实例(表单)的属性复制到JavaBean类(myJavaBean) ,只有在myJavaBean之中的属性会被复制
Struts中使用Validation框架
最新推荐文章于 2022-06-01 09:12:15 发布