如何在struts validation.xml文件中验证两个textfields值?

时间:2011-07-01 03:12:53

标签: xml validation jquery struts2 ognl

我正在使用Struts Jquery Ajax插件进行验证。我需要验证两个文本域MinAmt和MaxAmt。我需要验证MaxAmt总是大于MinAmt。为此,我就像这样制作我的XML。

<validator type="fieldexpression" short-circuit="true">
        <param name="fieldName">disSlab.maxAmt</param>
        <param name="fieldName">disSlab.minAmt</param>
        <param name="expression">disSlab.maxAmt.greaterThan(disSlab.minAmt)</param>
        <message>Not Valid Max Amt</message>
</validator>   

但它不起作用。我阅读了simple example here并在此代码中

<validator type="fieldexpression">
    <param name="fieldname">personBean.carModels</param>
    <param name="expression"><![CDATA[personBean.carModels.length > 0]]></param>
    <message>You must select at least one car model.</message>
</validator>

这很好用。但任何人都可以为我提供一个OGNL表达式吗?

谢谢你 Dhrumil Shah

2 个答案:

答案 0 :(得分:0)

尝试:

<validator type="expression>
         <param name="expression">disSlab.maxAmt gt disSlab.minAmt</param>
         <message>disSlab.maxAmt must be great than disSlab.minAmt.</message>
</validator>

有关详细信息,请参阅http://struts.apache.org/2.0.14/docs/validation.html#Validation-NonFieldValidatorVsFieldValidator

答案 1 :(得分:0)

嗨,最后我得到了解决方案 如果我们使用Bean并尝试验证像disSlab.maxAmt这样的字段它将无法正常工作,但我将其更改为简单的maxAmt然后应用该代码它工作正常... 代码是这样的......

<validator type="expression" short-circuit="true" >
      <param name="expression">maxAmt gt minAmt</param>
      <message>maxVal must be great than minVal.</message>
    </validator>

不知道为什么会发生这种情况..