如果jsp页面上,有些form的字段会随flag而表示非表示。
那么validation该如何设置,也能使得<field property 可变。

解决方案 »

  1.   

    是不是flag=x的话,abc是必须的,否则abc就不必须?用requiredif,比如:
    <field property="abc" depends="requiredif,maxlength">
    <arg
    key="ABC"
    resource="false" />
    <var>
    <var-name>field[0]</var-name>
    <var-value>flag</var-value>
    </var>
    <var>
    <var-name>fieldTest[0]</var-name>
    <var-value>EQUAL</var-value>
    </var>
    <var>
    <var-name>fieldValue[0]</var-name>
    <var-value>x</var-value>
    </var>
    <var>
    <var-name>maxlength</var-name>
    <var-value>50</var-value>
    </var>
    <arg
    name="maxlength"
    key="${var:maxlength}"
    resource="false" />
    </field>
    field[n]字段代表测试abc字段是否必须时的依据之一(field[0]、field[1]...之间是AND关系)
    fieldTest[n]代表field[n]的测试方法,EQUAL、NULL、NOTNULL(后两者代表field[n]字段空/非空)
    fieldValue[n]代表fieldTest[n]=EQUAL时的阈值,
    由于默认的depends中的check,除了required(if)以外,对于空值都是直接pass的,所以对于maxlength,minlength,或者date之类的check不会有影响
      

  2.   

    补充一下,如果field[n]之间用OR关系的话,增加var参数fieldJoin=OR
      

  3.   

    我现在一个form中有两个属性A和B,jsp页面中A和B会随一个flag而表示与不表示。当某一个属性显示在页面上的时候,需要做null,maxlength,mask的check,请问具体怎么写啊。