본문 바로가기

삽질하기/Struts 1.0 & 2.0

Struts에서 간단한 한글 처리

반응형

struts-config.xml에서 </action-mappings> 밑에 다음 부분을 추가한다.

<controller>
     <set-property property="processorClass" value="controller.MyRequestProcessor"/>
</controller>


또는 다음과 같이 설정해도 된다.

<controller processorClass="controller.MyRequestProcessor" />

1. RequestProcessor를 상속받는다.
RequestProcessor는 Action을 호출하기 전에 RequestProcessor에 정의된 메소드를 호출하여 전처리 작업을 수행할 수 있도록 제공한다.

2. 여기서는 Action이 실행되기 전에 request객체의 인코딩을 변경하기 위해서 protected boolean processPreprocess(HttpServletRequest request, HttpServletResponse response)를 Overriding하여 다음과 같이 구현한다.


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) {
         return false;
      }
      System.out.println("Action이 실행되기 전에 request객체를 'euc-kr'로 인코딩 하였습니다.");
      return true;
   }
}