如何使用Struts2验证进行条件验证?

时间:2010-02-24 20:09:02

标签: java validation struts2

Struts2可以用于条件验证吗?如果填写了“其他”复选框,那么字段“otherDetails”不能为空?

请注意,我正在寻找Struts2,而不是Struts1。非常感谢任何一个例子。

2 个答案:

答案 0 :(得分:4)

您可以使用表达式验证器。如果您通过XML进行验证,则应该具有以下内容:

<validators>

  <validator type="expression">
    <param name="expression">(other && (otherDetails!=null && otherDetails.trim()!=""))</param>
    <message>You must provide other details.</message>
  </validator>

</validators>

有关详细信息,请参阅http://struts.apache.org/2.2.1/docs/validation.html

答案 1 :(得分:2)

您可以使用JS验证。

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;
}