2011-09-09 5 views
0

두 필드의 유효성을 검사하려고하는데 하나는 숫자이고 다른 하나는 URL입니다. 이 필드 중 적어도 하나는 유효한 값을 가져야합니다. 숫자 필드에 값이 있고 유효한 숫자이거나 url 필드가 있고 유효한 URL 인 경우 유효성 검사가 통과됩니다.requiredif struts 유효성 검사기가 조건에 따라 두 필드를 확인합니다

"requireif"및 "mask"를 사용하여 확인하고 있습니다. 다음은 번호 확인의 예입니다.

<field property="nombre" 
       depends="requiredif,mask"> 
       <msg 
       name="mask" 
       key="errors.nombre"/> 
        <arg0 key="nombre"/> 

       <msg 
       name="requiredif" 
       key="errors.validateNombreUrl"/> 
        <arg0 key="nombre"/> 

       <var> 
       <var-name>mask</var-name> 
       <var-value>${nombre}</var-value> 
       </var> 

       <var> 
       <var-name>url</var-name> 
       <var-value>((url == null) and (*this* == null))</var-value> 
       </var> 
      </field> 

이와 비슷한 방식으로 URL 필드도 확인합니다. 그러나 유효성 검사기가 필드를 확인하고 두 필드 모두 필수임을 나타내는 오류가 표시됩니다. OR 조건으로 만들려면 어떻게해야합니까? var 값의 표현식이 requiredif에 맞는지 확실하지 않습니다. 왜냐하면 저는 버전의 문제로 인해 사용할 수없는 validwhen에서만 작동한다는 것을 알았 기 때문입니다. OR 조건에서이 두 필드의 유효성을 어떻게 확인합니까?

답변

0

당신이 사용하고있는 Struts의 버전은 밝히지 않았지만 오랜 시간이 지난 후에는 더 이상 사용하지 않아야합니다. You should be using validwhen, described here. 당신이 원하는 것을 보여주는 예가 있습니다.

+0

포인터에 감사드립니다. 지금은이 시험 ((URL == NULL)와 (*이 *! = NULL)) 같은 것을 사용하고 그러나 URL이 널 (null)과 브레 때이 오류를 던지고있다 필드에 유효한 숫자가 있습니다 :(조건에 문제가 있습니까? – Abhishek

+0

잘 모르겠으므로 나머지 유효성 검사 설정을 볼 수 없습니다. –

관련 문제