Struts2 인터셉터(initerceptor) – prepare
오라클자바커뮤니티에서 설립한 오엔제이프로그래밍
실무교육센터
prepare 인터셉터는 com.opensymphony.xwork2.Preparable 인터페이스를 구현한 Action의 prepare() 메소드를 실행 하는데 이 인터셉터는 Action을 실행하기 전에 다른 메소드를 실행 시킬 때 유용하게 사용될 수 있다. 이전 강좌에서 보았던 ModelDriven에서 사용하는 것이 전형적인 예이다. (모델 객체를 다루기 전에 미리 prepare 메소드 에서 생성하는 것)
[Action]
public class SumAction implements Action, Preparable, ModelDriven {
//도메인 오브젝트
NumberForAdd num;
private int sum = 0;
public String execute() throws Exception {
SumDAO dao = new SumDAO();
sum = dao.add(num);
return SUCCESS;
}
//Preparable인터페이스의 prepare 구현
public void prepare() throws Exception {
num = new NumberForAdd();
}
……
}
[struts.xml]
<action name="add" class="interceptor1.action.SumAction">
<interceptor-ref name="prepare"/>
<interceptor-ref name="modelDriven"/>
<interceptor-ref name="params"/>
<result>/result.jsp</result>
</action>
modelDriven 인터셉터는 Action의 getModel() 메소드를 호출해서 리턴되는 Object를 ValueStack의 최 상단에 넣는 데 이때 prepare 인터셉터를 modelDriven 전에 호출함으로써 도메인 오브젝트를 초기화 한다.
(신입사원채용추료교육, 오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷)
prepare 인터셉터는 com.opensymphony.xwork2.Preparable 인터페이스를 구현한 Action의 prepare() 메소드를 실행 하는데 이 인터셉터는 Action을 실행하기 전에 다른 메소드를 실행 시킬 때 유용하게 사용될 수 있다. 이전 강좌에서 보았던 ModelDriven에서 사용하는 것이 전형적인 예이다. (모델 객체를 다루기 전에 미리 prepare 메소드 에서 생성하는 것)
[Action]
public class SumAction implements Action, Preparable, ModelDriven {
//도메인 오브젝트
NumberForAdd num;
private int sum = 0;
public String execute() throws Exception {
SumDAO dao = new SumDAO();
sum = dao.add(num);
return SUCCESS;
}
//Preparable인터페이스의 prepare 구현
public void prepare() throws Exception {
num = new NumberForAdd();
}
……
}
[struts.xml]
<action name="add" class="interceptor1.action.SumAction">
<interceptor-ref name="prepare"/>
<interceptor-ref name="modelDriven"/>
<interceptor-ref name="params"/>
<result>/result.jsp</result>
</action>
modelDriven 인터셉터는 Action의 getModel() 메소드를 호출해서 리턴되는 Object를 ValueStack의 최 상단에 넣는 데 이때 prepare 인터셉터를 modelDriven 전에 호출함으로써 도메인 오브젝트를 초기화 한다.
댓글 없음:
댓글 쓰기