webwork表单提交中有一个很有用的技巧,在提交成组的类似person[0].name,person[1].name的表单中,可以利用conversion使xwork自动装配对象属性到action中: form 代码: Html代码 <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> <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类: Java代码 public Class Person{ public String name; public Long id; getXXX... setXXX... } public Class Person{ public String name;public Long id;getXXX...setXXX...}然后在action类同层次创建conversion文件,ClassName-conversion.properties,这里用SavePersonAction-conversion.properties: Java代码 Element_persons=Person CreateIfNull_persons=true Element_persons=PersonCreateIfNull_persons=true这里面配置文件的含义就是页面中persons名字样式的数组表单提交会被xwork转换成一个个对象放入list中,如果list是空的话xwork会自己创建一个. action的代码如下: Java代码 public Class SavePersonAction extends ActionSupport{ List persons=new ArrayList(); } public Class SavePersonAction extends ActionSupport{ List persons=new ArrayList();}这样,form中提交的数组形式的属性,会由xwork转换成person对象并放入list中,供action使用. 但这样的验证表单的数据就会与传统xwork的验证不同.传统xml的validation类似如下样子: Xml代码 <validators> <field name="name"> <field-validator type="required"> <message>You must enter a value for bar.</message> </field-validator> </field> <validators> <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 形式的,并不能确定提交哪个person[?].name , 就要用到xwork的一个测试的validation,叫collection,配置方法如下,在SavePersonAction-validation.xml中加入: Xml代码 <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>