2016-07-28 2 views
1

다른 형식의 필드에 특정 값이있는 경우 조건부로 유효성을 검사하려는 양식이 두 개 있습니다 (유효성 검사를 원한다면 유효성 검사를 원하지 않습니다). Struts2의 조건부 유효성 검사

처음에 나는 그러나 내가 이상이 필요, (비슷한 질문이 제안으로) 이렇게 필드 표현식을 사용하여 계획 한 (내 생각) EL 제공 :

여기에 내 현재 XML입니다 :

<field name="effectiveDate"> 
    <field-validator type="fieldexpression"> 
     <param name="expression">childReason not in {1} or effectiveDate.length() gt 9</param> 
     <message key="validation.effectiveDate.entered" /> 
    </field-validator> 
</field> 

이것은 작동합니다 ... 그러나 필드 길이에 대한 간단한 검사 대신에 정규식을 사용하여 날짜가 유효한지 확인하고자합니다. 또한, 나는 미래에 날짜를 입력하지 않거나 오늘 날짜보다 1 년 더 오래된 날짜를 입력하고 싶습니다.

기본적으로 사용자 지정 유효성 검사기를 사용하거나이 항목을 확인할 수있는 EL 식을 사용하고 싶습니다.

+0

'validateXXX' 메소드를 사용하여 유효성을 확인하거나 사용자 정의 유효성 검사기를 생성하십시오. –

+0

@AleksandrM이 대답을하고 싶습니다. 그래서 받아 들일 수 있습니까? 감사. – Othya

답변

1

당신 행동이 Validateable 인터페이스를 구현 (당신이 ActionSupport를 확장하는 경우는 않음) 한 다음 XXX하면 유효성을 검사 할 방법의 이름입니다 validateXXX() 방법을 사용할 수 있습니다 validation 인터셉터와 스택을 사용합니다.

public void validateSave() { 
    // some is some complex conditional validation :) 
    if (some) { 
     addFieldError("effectiveDate", "Wrong date!") 
    } 
} 

또 다른 옵션으로는 사용자 정의 검사기를 만드는 것입니다.

+0

Struts는 이러한 유형의 유효성 검사를 제공 할 수 있지만 특정 사용 사례에 따라 유효성 검사 규칙이 중복되는 경우가 있습니다. – Naros

+0

@Naros And? 당신이 그것을 사용할 수 없다는 것을 의미하지는 않습니다. –