Can Struts2 be used for conditional validation? As in, if checkbox "Other" is filled in, then field "otherDetails" must not be empty?
Note that开发者_运维知识库 I'm looking for Struts2, not Struts1. Any example is greatly appreciated.
You can probably use an expression validator. If you're validating via XML, you should have something like:
<validators>
<validator type="expression">
<param name="expression">(other && (otherDetails!=null && otherDetails.trim()!=""))</param>
<message>You must provide other details.</message>
</validator>
</validators>
See http://struts.apache.org/2.2.1/docs/validation.html for more info.
You could maybe use JS validation.
JSP:
<s:checkbox id="other" name="other" />
<s:textfield id="otherDetails" name="otherDetails"></s:textfield>
<sx:submit
id="button_submit"
name="button_submit"
onclick="return checkOther();" />
JS:
function checkOther() {
if(document.getElementById('other').checked == true) {
if(document.getElementyById('otherDetails').value.length == 0) {
//you should trim the value
alert("Insert other details");
return false;
}
}
return true;
}
精彩评论