2011-07-01 20 views
0

我正在使用Struts Jquery Ajax插件進行驗證。我需要驗證兩個文本字段MinAmt和MaxAmt。我需要驗證MaxAmt總是大於MinAmt。爲此,我製作了這樣的XML。如何驗證struts validation.xml文件中的兩個textfields值?

<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 Expression for greaterthan?

謝謝進階 Dhrumil沙阿

回答

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

+0

它不工作。我之前嘗試過。你有沒有其他解決方案? –

+0

@Dhrumil Shah:是disSlab.maxAmt和disSlab.minAmt'int'或'String'? – nmc

+0

disSlab是我的VO類,有getter和setter。 maxAmt和minAmt都是Long類型。 –

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> 

不知道爲什麼會這樣..