스트럿츠에서 한글 처리하는 방법 중
스트럿츠에서 제공하는 RequestProcess 객체를 이용한 한글 처리 방법을 소개 하려고 한다.
RequestProcess 객체에서 processPreprocess 메소드를 오버라이딩 하여
다른 작업이 이루어 지기 전 미리 설정 해 두어야 할 사항을 기술 해 놓을 수가 있는데
이를 이용해 한글 처리 작업을 해 놓으면 된다.
다음과 같이 자기만의 클래스 하나를 생성 해 놓는다.
예를들어 filter 패키지에 MyFilter 라는 이름으로 클래스를 생성 해 놓는다.
package filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.RequestProcessor;
public class MyFilter extends RequestProcessor {
protected boolean processPreprocess(HttpServletRequest request, HttpServletResponse response) {
try {
request.setCharacterEncoding("euc-kr");
return true;
} catch (Exception e) {
return false;
}
}
}
이후 이 클래스를 struts-config.xml 에 다음과 같이 등록 하여 주면 ActionForm 을 통하여 넘어오는 데이터를 일일이 한글 처리 해 줄 필요가 없다.
<controller contentType="text/html;charset=euc-kr" locale="true" nocache="true" processorClass="filter.MyFilter" />