-
[Spring-3]UTF-8 Filter 적용 및 ViewResolver 설정설치&설정 관련/Spring Framework 2014. 10. 20. 17:54728x90
본 포스팅은 SLF4j + LogBack 에서 UTF-8 Encoding Filter와 ViewResolver 설정을 추가하는 내용입니다.
GIT 주소 : https://github.com/lahuman/SpringBoot.Sample
UTF-8 Filter 설정 이유
각 서버의 환경이 다르기 때문에 A 서버에서 문제없었던 한글 문제가 B 서버에서 이용시 깨지는 현상이 발생 할 수 있다.
따라서 어떠한 환경에서든, 하나의 Encoding을 사용하는 것을 추천하며, 각 request와 response마다 설정할 필요 없이 Filter에 설정을 하는 방법이 추천한다.
참고 URL : http://dertompson.com/2007/01/29/encoding-filter-for-java-web-applications/
준비 사항
- JDK 1.6 이상
- Gradle 1.11 이상
- IntelliJ
UTF-8 Filter 적용 및 ViewResolver 설정
1. UTF-8 Filter 설정
Application class 에 CharacterEncodingFilter 등록 한다.
@Bean public CharacterEncodingFilter characterEncodingFilter() { final CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); characterEncodingFilter.setEncoding("UTF-8"); characterEncodingFilter.setForceEncoding(true); return characterEncodingFilter; }
참고 URL : http://emflant.tistory.com/97
2. ViewResolver 설정
우선 WEB 관련 디렉토리를 생성한다.
가장 많이 이용하는 webapp/WEB-INF로 디렉토리를 생성하였다.
위와 같이 샘플 jsp파일을 생성한다. ViewResolver에 위치로 "/WEB-INF/views/"
그리고 사용할 ViewResolver를 등록한다.
@Bean public InternalResourceViewResolver getInternalResourceViewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); return resolver; }
TIP-1 : JSP 파일을 찾지 못할 경우
jsp 파일을 찾지 못하는 문제가 발생할 경우, 다음과 같이 처리 할 수 있다.
Application class에서 WebMvcConfigurerAdapter를 extends(상속) 한다.
@EnableWebMvc @Configuration @EnableAutoConfiguration @ComponentScan public class Application extends WebMvcConfigurerAdapter { ....
이후 다음과 같이 설정한다.
@Override public void configureDefaultServletHandling( DefaultServletHandlerConfigurer configurer) { configurer.enable(); }
XML 이용시 사용하는 다음 태그와 같은 의미 이다.
<!-- This tag allows for mapping the DispatcherServlet to "/" -->
<
mvc:default-servlet-handler
/>
참고 URL : http://www.luckyryan.com/2013/02/07/migrate-spring-mvc-servlet-xml-to-java-config/
TIP-2 : JSP 데이터가 그대로 표출될 경우
이문제는 Spring-boot를 사용할 경우 기본적으로 tomcat-embed-jasper 가 dependencie 되지 않아 발생하는 문제 이다.
간단하게 gradle에 다음과 같이 추가 해준다.
compile('org.apache.tomcat.embed:tomcat-embed-jasper:8.0.14')
3. 테스트
테스트를 위해, 기존에 사용했던 HelloController에 다음과 같이 메소드를 추가 한 후 서버를 기동하여 접속 테스트를 한다.
@RequestMapping("/test.do") public String helloWorld(){ return "test"; }
728x90'설치&설정 관련 > Spring Framework' 카테고리의 다른 글
[Spring-5]PropertySource 사용하기 (0) 2014.10.28 [Spring-4]국제화 서비스를 위한 MessageSource 설정하기 (0) 2014.10.24 [TIP]AOP : java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut 발생시 확인 사항 (2) 2014.10.21 [Spring-2]SLF4j + Logback 사용하기 (0) 2014.10.17 [Spring-1] Spring Boot Sample 따라 하기 (3) 2014.10.14