Java 使用Struts验证器,我可以检查所有字段是否为空吗?
我正在重写一个旧项目的一部分,以利用Java 使用Struts验证器,我可以检查所有字段是否为空吗?,java,validation,struts-1,struts-validation,Java,Validation,Struts 1,Struts Validation,我正在重写一个旧项目的一部分,以利用 <field property="idNumber" depends="mask"> <msg name="mask" key="error.formating.idnumber" /> <arg position="0" value="SearchForm.idNumber" /> <var>
<field property="idNumber" depends="mask">
<msg name="mask" key="error.formating.idnumber" />
<arg position="0" value="SearchForm.idNumber" />
<var>
<var-name>mask</var-name>
<var-value>${maskIdNumber}</var-value>
</var>
</field>
我已经在每个字段上修改了验证规则,使用了一个可以在其他形式中重用的正则表达式,例如:
<field property="idNumber" depends="mask">
<msg name="mask" key="error.formating.idnumber" />
<arg position="0" value="SearchForm.idNumber" />
<var>
<var-name>mask</var-name>
<var-value>${maskIdNumber}</var-value>
</var>
</field>
<field property="idNumber" depends="mask">
<msg name="mask" key="error.formating.idnumber" />
<arg position="0" value="SearchForm.idNumber" />
<var>
<var-name>mask</var-name>
<var-value>${maskIdNumber}</var-value>
</var>
</field>
只有在字段idNumber不为空时才会尝试测试,对吗?常见问题解答指出:
<field property="idNumber" depends="mask">
<msg name="mask" key="error.formating.idnumber" />
<arg position="0" value="SearchForm.idNumber" />
<var>
<var-name>mask</var-name>
<var-value>${maskIdNumber}</var-value>
</var>
</field>
如果
字段为空或长度为零
<field property="idNumber" depends="mask">
<msg name="mask" key="error.formating.idnumber" />
<arg position="0" value="SearchForm.idNumber" />
<var>
<var-name>mask</var-name>
<var-value>${maskIdNumber}</var-value>
</var>
</field>
我尝试过使用validwhen,但它是在Stuts1.2中引入的,我现在使用的是1.1,因此我得到了一个错误,没有为字段idNumber找到名为validwhen的ValidatorAction
<field property="idNumber" depends="mask">
<msg name="mask" key="error.formating.idnumber" />
<arg position="0" value="SearchForm.idNumber" />
<var>
<var-name>mask</var-name>
<var-value>${maskIdNumber}</var-value>
</var>
</field>
我可以使用requiredif,但它可能使用了我见过的最糟糕的语法
<field property="idNumber" depends="mask">
<msg name="mask" key="error.formating.idnumber" />
<arg position="0" value="SearchForm.idNumber" />
<var>
<var-name>mask</var-name>
<var-value>${maskIdNumber}</var-value>
</var>
</field>
相反,我采用了Struts validator框架和validate方法中的技术:
<field property="idNumber" depends="mask">
<msg name="mask" key="error.formating.idnumber" />
<arg position="0" value="SearchForm.idNumber" />
<var>
<var-name>mask</var-name>
<var-value>${maskIdNumber}</var-value>
</var>
</field>