Programming2011. 8. 2. 04:15
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=72174333&qb=c3RydXRzMiBpbnRlcmNlcHRvci1yZWY=&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=gBkIEF5Y7v4ssuwanNRssc--328877&sid=Tjb6mnK-Nk4AACwFEj4
질문

struts2 <interceptor-ref name="prepare" /> 목적 내공30

ezpos1007 
2009.06.09 16:56
답변
 
1
 
조회
 
1,341

struts2 에서 <interceptor-ref name="prepare" />

                   <interceptor-ref name="modelDriven" />

                   <interceptor-ref name="params" />

 

이거 하는거랑

 

       public  TestAction extends ActionSupport implements Preparable , ModelDriven {

 

   public void prepare() throws Exception {

 

}

public member getModel()  {

 return mem ; 

}

public String execute() throws Exception{

return SUCCESS;

}

struts.xml 에서 <interceptor-ref> 를 설정 안해도 implements 에서 메소드가

있으먀 함으로 실행 되며 데이터도 이상없이 넘어 가던데요..

<interceptor-ref> 를 해야하는 이유를 알고 싶어요..

질문자 채택된 경우, 추가 답변 등록이 불가합니다.

질문자 채택

re: struts2 <interceptor-ref name="prepare" /> 목적

lmcshh1 
답변채택률 78.3%
 
2009.06.09 23:19

질문자 인사

정말 친절한 답변 감사드려요~ 감사 합니다.. 나중에 쪽지 보낼꼐요

<interceptor-ref> 이런걸 안써도 제대로 실행되어 집니다.

 

인터셉터는 struts2에서 자동적으로 처리가 되어집니가 결국은 갖다 쓰는것 밖에 안되는데..

 

인터셉터 개념을 먼저 잡으셔서 어떻게 돌아간다는걸 아시게 되면 

 

기본개념은 액션 단위의 작업을 수행할 때 기존 액션 처리 전과 후에 추가적인 작업을 지원하기 위한

 

방법이구요 인터셉터를 이용해서 훨씬더 나만의 방식으로

 

 

 

유연하게 프로그램을 작성하실수가 있습니다.

 

결론은..

 

<interceptor-ref name="prepare" />  1

<interceptor-ref name="modelDriven" /> 2

<interceptor-ref name="params" /> 3

 

이렇게 쓰면 실행되는 순서가 달라지게 됩니다.(아까설명드렸듯이 안써도 자동처리됩니다.)


<interceptor-ref name="prepare" />

는 Preparable 인터네시르를 구현하였다면  액션을 호출하기전에 실행되는 메소드이며 즉 초기화 작업을 많이 합니다.

<interceptor-ref name="modelDriven" />

는 ModelDriven 인터페이스를 구현하였다면 getModel()메소드의 반환 값을 밸류 스택에 넣는 역활입니다.

 

<interceptor-ref name="params" />

는 요청 파라미터를 액션에 저장하는 겁니다.

 

 

 

출처
 
직접 글 입력
lmcshh1 
초수
 
채택 46 (82.1%)
사진없음

입력된 URL이 없습니다.

입력된 자기 소개가 없습니다.

주요활동분야
Posted by 신의물방울