오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)
액션의 경우 하나의 클래스에 관련된 action이 정의 되어 있는 것이 좋은 방법인데 DispacthAction 클래스는 관련된 action은 하나의 클래스에 관리하는 방법을 제공 합니다.
DispacthAction 클래스는 추상 클래스 이므로 사용하기 위해서는 액션 클래스에서 오버라이드 해야 하며 DispacthAction 클래스에서는 어느 action이 불리어져야 하는지를 관리 하기 위해 hidden request parameter를 관리 합니다.
DispacthAction 을 상속 받은 하위 클래스로 넘어오는 hidden parameter는 스트럿츠 설정 파일에 있는 <action> 요소의 parameter 라는 속성의 값이 넘어 오게 됩니다.
결국 DispacthAction 클래스를 상속 받은 하위 클래스는 execute() 메소드와 signature가 같은 많은 메소드(각각의 Action이 수행 해야 하는 메소드)를 정의해야 합니다.
=================================================================
1. Action 처리를 위한 DispatchAction클래스의 하위 클래스를 작성
public class UserRegistrationMultiAction extends DispatchAction {
...
}
2. 관계된 action을 구현 합니다.
public ActionForward processPage1( ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
...
}
public ActionForward processPage2(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
...
}
3. Action Mapping을 작성 합니다. 이때 paramter라는 속성에 “action” 이라고 줍니다. 이 action이라는 파라미터와 그 값(이건 JSP에서 넘어 옵니다)이 위에서 구현한 DispatchAction 클래스를 상속한 UserRegistrationMultiAction 클래스에 넘어 가게 됩니다.
즉 paramter인 action의 값이 수행 하고자 하는 action이 되는 것 입니다.
<action path="/userRegistrationMultiPage1"
type="strutsTutorial.UserRegistrationMultiAction"
name="userRegistrationForm"
attribute="user"
parameter="action"
input="/userRegistrationPage1.jsp">
...
</action>
<action path="/userRegistrationMultiPage2"
type="strutsTutorial.UserRegistrationMultiAction"
name="userRegistrationForm"
attribute="user"
parameter="action"
input="/userRegistrationPage2.jsp">
...
</action>
4. 이젠 JSP에서 action이라는 히든 텍스트를 만들어 Action이 일어 날 때 Action을 처리하는 클래스(UserRegistrationMultiAction ) 로 넘기게 됩니다.
userRegistrationPage1.jsp 에 포함된 히든 태그
<html:hidden property="action" value="processPage1"/>
userRegistrationPage2.jsp 에 포함된 히든 태그
<html:hidden property="action" value="processPage2"/>
댓글 없음:
댓글 쓰기