浏览 6539 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-25
form 代码: <form action="savePerson.action"> <input type="text" name="persons[0].name" /> <input type="text" name="persons[0].id" /> <input type="text" name="persons[1].name" /> <input type="text" name="persons[1].id" /> </form> person类: public Class Person{ public String name; public Long id; getXXX... setXXX... } 然后在action类同层次创建conversion文件,ClassName-conversion.properties,这里用SavePersonAction-conversion.properties: Element_persons=Person CreateIfNull_persons=true 这里面配置文件的含义就是页面中persons名字样式的数组表单提交会被xwork转换成一个个对象放入list中,如果list是空的话xwork会自己创建一个. action的代码如下: public Class SavePersonAction extends ActionSupport{ List persons=new ArrayList(); } 这样,form中提交的数组形式的属性,会由xwork转换成person对象并放入list中,供action使用. 但这样的验证表单的数据就会与传统xwork的验证不同.传统xml的validation类似如下样子: <validators> <field name="name"> <field-validator type="required"> <message>You must enter a value for bar.</message> </field-validator> </field> <validators> 这里的field name必须精确匹配表单中提交的名字,由于我们表单中的name是name <validators> <field name="persons"> <field-validator type="collection"> <param name="property">persons.name</param> <param name="validatorRef">required</param> <param name="validatorParams['defaultMessage']">Must be String</param> <message> ... </message> </field-validator> </field> </validators> <validators> 我想实验用collection去使用regex验证,没有成功,可能还有问题,最后还是将表单提交到action层进行正则验证. conversion会有一个问题,如果person中有一个id声明为long类型,但页面提交的时候这个属性如果包括了字母和数字,就会产生一个conversion error,由于xwork的xml验证是在conversion转换成对象之后进行,无法在之前拦截到, 如果页面操作比较复杂,需要button提交数据到action进行各种操作,会在提交前产生conversion error,不能进入action层进行操作,在开发中需要注意. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-03-27
collection 验证,没问题,我成功了
|
|
返回顶楼 | |
发表时间:2008-03-28
我用regex配置的正则不能拦截表单提交,有时候还会报错,不知道为什么
|
|
返回顶楼 | |
发表时间:2008-09-29
struts2用的是xwork2库,而xwork2中并没有CollectionFieldValidator这个验证器,该如何处理?从xwork1拷贝过去?
|
|
返回顶楼 | |
发表时间:2008-09-29
搞定拉,吧Xwork1的CollectionFieldValidator和DefaultActionValidatorManager拷过来改一点就好拉
|
|
返回顶楼 | |
发表时间:2008-11-11
lingzantia 写道 搞定拉,吧Xwork1的CollectionFieldValidator和DefaultActionValidatorManager拷过来改一点就好拉 这种改动是维护了一个自己版本的xwork, 对以后升级不利 |
|
返回顶楼 | |
发表时间:2008-11-11
若list中又有list,第二个list中才方person对象,如何从页面传值到action?如何些conversion.properties文件?
|
|
返回顶楼 | |
发表时间:2008-11-11
gyang2 写道 若list中又有list,第二个list中才方person对象,如何从页面传值到action?如何些conversion.properties文件? 还没见过这种页面布局的, 一般提交一个list就够了, 什么样的页面需要提交这个样子的数据? |
|
返回顶楼 | |