지난 1부 강좌에서는 struts 의 Action Mapping 의 흐름을 알아봤다. 이번에는 controller 에 대해 알아본다. 1부 강좌를 성공적으로 마친 분이라면 쉽게 따라 할수 있을것이다. |
RequestProcessor 란? MVC 모델의 C에 해당되는 controller를 struts 에서도 쉽게 쓸수 있다. 이에 해당되는 클레스는 RequestProcessor 이다 왜 RequestProcessor 가 필요한가? 1부에서 해본 struts는 하나의 actiion 에 Action Class가 mapping되고 거기에 관련 jsp 로 forward 시켜주는것을 배웠다. actiion이 많아 지면 그만큼Action Class도 많아진다. 근데 만약에 모든 Action Class에 request에 한글 인코딩을 해줘야 한다고 생각해보자. 수많은 Action Class를 모두 추가 할것인가? 하지만 걱정할것 없다. 모든 Action Class가 실행되기전 RequestProcessor 을 거치기 때문이다.이처럼 모든 Action Class가 실행되기전 해야할 작업에대해 RequestProcessor을 상속받아서 하면된다. |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd"> <struts-config> <action-mappings> <action path="/Index" type="examples.IndexAction"> <forward name="success" path="/index.jsp" /> </action> </action-mappings> <controller> <set-property property="processorClass" value="controller.MyRequestProcessor"/> </controller> </struts-config> |
package controller; import javax.servlet.http.*; import org.apache.struts.action.*; public class MyRequestProcessor extends RequestProcessor{ protected boolean processPreprocess(HttpServletRequest request, HttpServletResponse response){ try{ request.setCharacterEncoding("euc-kr"); }catch(Exception e){} System.out.println("모든 Action이 실행되기 전에 한글 인코딩을 해줬습니다."); return true; } } |
[출처] 기초 스트럿츠2(펌)|작성자 어린양이