struts2 Validation
Check
오라클자바커뮤니티에서 설립한 오엔제이프로그래밍
실무교육센터
(신입사원채용무료교육, 오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷)
Struts2에서는 유효성 검사를 할 수 있는 몇 가지 방법을 제공하는데
다음과 같다.
-. Action의 execute 메소드에서 유효성 검사를 할 수 있다. 하지만 이렇게 하게 되면 execute 메소드 본연의 기능보다
유효성 검사 부분에 많은 코드가 할당 되므로 바람직 하지는 않다.
-. Validateable 인터페이스를 구현하고 workflow 인터셉터를 붙이면 execute() 메소드에서 유효성검사를 하지 않고 별도의 validate()
메소드에서 유효성 검사를 할 수 있다. 이 경우는
Validation Check가 복잡하고 다른 Action에서 재사용되지 않는 Validation Check인 경우 유용하다.
-. 3번째 방법은 유효성 검사 프레임워크를 이용하는 방법인데 유효성 검사를 위한 부분을 별도로 Action에서 분리하여 Validator 클래스로 만드는
방법이다. Vaidation Intercaptor를 붙이고 XML
필드를 validator로 매핑 한다.
예제를 따라하자.
1. Action 파일을 작성
package quiz.action;
import com.opensymphony.xwork2.ActionSupport;
public class QuizAction extends ActionSupport {
private
String name;
private int
age;
private
String answer;
public
String execute() throws Exception {
return SUCCESS;
}
public
String getName() {
return
name;
}
public void
setName(String name) {
this.name = name;
}
public int
getAge() {
return
age;
}
public void
setAge(int age) {
this.age = age;
}
public
String getAnswer() {
return
answer;
}
public void
setAnswer(String answer) {
this.answer = answer;
}
}
2. Action-Validation.xml 파일 작성
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork
Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="name">
<field-validator type="requiredstring">
<message>이름을 반드시 입력해야 합니다.</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param
name="min">20</param>
<param
name="max">30</param>
<message>20 ~ 30 나이에 해당하는 사람만 퀴즈에 응답할 수 있습니다.</message>
</field-validator>
</field>
</validators>
3. JSP 파일
<%@ page contentType="text/html; charset=utf-8"
%>
<%@ taglib prefix="s" uri="/struts-tags"
%>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>quiz</title>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<s:head />
</head>
<body>
<b>당신이 가장 좋아하는 색은?</b>
<p/>
<s:form action="quiz">
<s:textfield label="이름"
name="name"/>
<s:textfield label="나이"
name="age"/>
<s:textfield label="좋아하는 색"
name="answer"/>
<s:submit/>
</s:form>
</body>
</html>
4. struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache
Software Foundation//DTD Struts Configuration
2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package
name="struts2" extends="struts-default">
<action name="quiz"
class="quiz.action.QuizAction">
<interceptor-ref name="params"/>
<interceptor-ref name="validation"/>
<interceptor-ref name="validation"/>
<result>/quiz/quiz.jsp</result>
<result
name="input">/quiz/quiz.jsp</result>
</action>
</package>
</struts>
5. 결과확인
댓글 없음:
댓글 쓰기