2011-08-11 8 views
2

양식에 전자 메일과 전화 번호 (정수) 필드가 두 개 있습니다. 폼은 struts 유효성 확인 프레임 워크 (ActionClass-validation.xml)를 사용하여 유효성을 검사합니다. 이 두 필드는 선택 사항이므로 사용자는 비워 둘 수 있습니다. 그러나 그들이 비어 있지 않으면 필드의 유효성을 검사해야합니다. 이 작업을 수행하기 위해 XML로 validator를 작성하는 방법을 알려주십시오.Struts 2는 비어 있지 않은 경우 필드를 확인합니다.

+1

xml은 재사용하려는 경우 (시간을 절약 할 수있는 시점까지) 좋기 때문에 많은 사람들이 올바른 정규 표현식/xml 구문에 두뇌를 얹어 보았습니다. 몇 줄의 자바가 몇 분 밖에 걸리지 않았을 것입니다! – Quaternion

+0

이메일의 경우 setter에서 @EmailValidator를 사용하는 것이 명확합니다. 참조 (섹션 유효성 검사 주석) : http://struts.apache.org/2.x/docs/annotations.html – Quaternion

+0

@Quaternion 또한 유효성 검사 방법을 선호합니다. 유효성 검사를 위해 Java 코드를 사용하면 더욱 강력 해집니다. – anu

답변

1

당신은 또한 주석을 사용할 수있는이

<field name="email"> 
    <field-validator type="email"> 
     <message>Invalid Email (empty email accepted)</message> 
    </field-validator> 
</field> 

<field name="contact"> 
    <field-validator type="regex"> 
     <param name="expression"><![CDATA[([1234567890]+)]]></param> 
     <message>Invalid Contact Number (empty number accepted)</message> 
    </field-validator> 
</field> 

Here is a complete example.

4

보십시오. 제 의견으로는 이해하기 쉽고 작성하고 디버그하기가 더 쉽습니다.

: 당신은 필드 (또는 조치) 에러 태그를 사용하여 오류를 참조 할 수 있습니다 JSP에서

@RegexFieldValidator(key = "validation.number", message = "", type = ValidatorType.SIMPLE, expression = NUMBER_PATTERN_STRING) 
public String getNumber() { 
    return number; 
} 

: 당신이 정규식 유효성 검사기를 사용할 수 있습니다, 수에 대한

@EmailValidator(type = ValidatorType.SIMPLE, message = "", key = "validation.email") 
public String getEmail() { 
    return email; 
} 

:이 예입니다

<s:fielderror fieldName="email" cssClass="myerrorclass"/> 
<s:textfield name="email" cssClass="myclass" cssErrorClass="myothererrorclass"/> 

코드가 아주 자명하다면 좋겠습니다. 해피 코딩! ;)

+0

전자 메일 및 전화가 비어 있으면 문자열에서 유효성 검사를 거쳐야합니다. 제목은 "Struts 2가 비어 있지 않으면 필드의 유효성 검사" – sytolk

관련 문제