我有一個包含一個複選框(而不是複選框列表)和一個文本框的表單。 如果複選框被選中,則不需要輸入文本框的值。 如果複選框沒有被選中,那麼我需要驗證textfield是否有強制性。 如何使用表達式驗證器。在struts2.0.11中可以這樣做。Struts2 xml驗證複選框不適用於checboxlist
讓我提前知道
我有一個包含一個複選框(而不是複選框列表)和一個文本框的表單。 如果複選框被選中,則不需要輸入文本框的值。 如果複選框沒有被選中,那麼我需要驗證textfield是否有強制性。 如何使用表達式驗證器。在struts2.0.11中可以這樣做。Struts2 xml驗證複選框不適用於checboxlist
讓我提前知道
使用fieldexpression validator。例如:
SomeAction.java
private SomeObject object; // with getter & setter
private boolean doNotCheck; // with setter
的Input.jsp
<s:textfield name="object.field" />
<s:checkbox name="doNotCheck" />
<s:fielderror fieldName="object.field" />
SomeAction.validation.xml
<validators>
<field name="object.field">
<field-validator type="fieldexpression">
<param name="expression">
<![CDATA[ isDoNotCheck() ? true : (object.field != null && !object.field.isEmpty()) ]]>
<!-- OR -->
<!-- isDoNotCheck() ? true : !object.field.isEmpty() -->
</param>
<message>This is a mandatory field</message>
</field-validator>
</field>
</validators>
感謝您可以在您的Action類validate()
方法,並在其中添加驗證碼。 有關詳細信息,請閱讀文檔。 http://struts.apache.org/2.x/docs/form-validation.html
另一種選擇是xml驗證。 http://struts.apache.org/2.x/docs/validation.html
您好,感謝您的答但是我沒有找到上面在xml驗證中解釋的場景的答案。如果你提供一個例子是非常有幫助的。謝謝 – naveen
閱讀有關表達式驗證和非字段驗證器的部分。您可以使用它來組合標準並形成謂詞。 http://struts.apache.org/2.x/docs/using-non-field-validators.html – Quincy
感謝您的重播。 – naveen