12.07.2015 Views

4.3.1.Action의 역할 - Anyframe

4.3.1.Action의 역할 - Anyframe

4.3.1.Action의 역할 - Anyframe

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Controller• postProcess : AbstractActionSupport 클래스를 상속받은 Action 클래스의 process 메소드 수행 후 호출되는 메소드로서 Action 매핑 정보(saveToken)에 기반하여 Token을 생성한다. 해당 Action을 수행하기 위한 postCondition이 필요할 경우 이 메소드를 오버라이드하면 된다.• processInvalidTokenException : Synchronized Token 사용시 Token이 유효하지 않을 경우에 대한 처리 로직을 담고 있다. "요청이 올바르지 않습니다."라는 메시지를 담은 ActionMessage를 생성하고,InvalidTokenException을 throw한다.• processUnCheckedException : preProcess(), process(), postProcess() 수행시 RunTimeException이 발생한 경우, 해당 Exception을 throw한다. UnCheckedException 발생시 별도 처리 로직이 필요한 경우이 메소드를 오버라이드하면 된다.• processCheckedException : preProcess(), process(), postProcess() 수행시 Exception이 발생한 경우,해당 Exception을 throw한다. CheckedException 발생시 별도 처리 로직이 필요한 경우 이 메소드를오버라이드하면 된다.• processFinally : AbstractActionSupport 클래스 execute 메소드의 finally 구문에서 호출되는 메소드이다. finally 구문에서 별도 처리 로직이 필요한 경우 이 메소드를 오버라이드하면 된다.위에서 제시한 AbstractActionSupport의 기본 제공 기능 이외에 각 Action 클래스에서 처리해야 할 공통 기능이 필요할 경우, AbstractActionSupport를 상속받은 클래스를 생성하고, 해당 클래스에서 필요한 기능을 추가하도록 한다. 그리고 각 Action 클래스는 AbstractActionSupport를 상속받은 클래스를 상속받아 구현하도록 한다.9.3.1.Action Sample다음은 AbstractActionSupport를 상속받아 구현한 LoginAction.java 이다.public class LoginAction extends AbstractActionSupport {public Log getLogger() throws Exception {return LogFactory.getLog(this.getClass().getName());}public ActionForward process(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {AuthenticationService authenticationService =(AuthenticationService) getService("authenticationService");UserForm userForm = (UserForm) form;UserVO userVO = new UserVO();BeanUtils.copyProperties(userVO, userForm);Subject subject = authenticationService.authenticate(userVO);HttpSession session = request.getSession();}}session.setAttribute("subject", subject);return (mapping.findForward("success"));위의 소스코드에서는 LoginAction 클래스에서 개별 Logger를 사용하기 위해 AbstractActionSupport의getLogger 메소드를 오버라이드하고 있다.48

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!