Spring Boot: Velocity 한글깨짐(Encoding) 문제
스프링부터SpringBoot를 이용한 프로젝트에서 TemplateViewEngine으로 Velocity를 선택했다.
@Bean
public ViewResolver viewResolver() {
VelocityViewResolver viewResolver = new VelocityViewResolver();
viewResolver.setPrefix("classpath:/templates");
viewResolver.setSuffix(".vm");
viewResolver.setOrder(Ordered.LOWEST_PRECEDENCE - 20);
return viewResolver;
}
이 설정만 해서는 Velocity가 인코딩 설정을 제대로 하지 못한다.
스프링부트 설정에 application.yml을 이용했다. YAML을 설정DSL로 채택했는데, 설정이 무척 간결해진다.
Velocity와 관련된 설정은
spring:
velocity:
properties:
input.encoding: UTF-8
output.encoding: UTF-8
다음과 같이 해주면, Velocity 스프링 설정은 끝.
혹은 별도로 Velocity에 관한 설정을 하는 방법은 다음과 같다.
1. velocity.properties 를 이용하거나
<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="configLocation" value="classpath:/velocity.properties"/>
</bean>
resource.loader = file
file.resource.loader.description = Velocity File Resource Loader
file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader
file.resource.loader.path = .
file.resource.loader.cache = false
file.resource.loader.modificationCheckInterval = 2
input.encoding=UTF-8
output.encoding=UTF-8
2. 스프링 빈 설정을 하면 된다.
스프링 빈으로 설정하는 방법은
1. JavaConfig 빈 설정
@Bean
public VelocityConfigurer velocityConfigurer() {
VelocityConfigurer configurer = new VelocityConfigurer();
configurer.setResourceLoaderPath("classpath:/templates");
Properties properties = new Properties();
properties.setProperty("input.encoding", "UTF-8");
properties.setProperty("output.encoding", "UTF-8");
configurer.setVelocityProperties(properties);
return configurer;
}
2. XML 빈 설정
<bean id="velocityConfigurer" class="import org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="classpath:/~~"/>
<property name="velocityProperties">
<props>
<prop key="input.encoding">UTF-8</prop>
<prop key="output.encoding">UTF-8</prop>
</props>
</property>
</bean>
두 가지 방법이 있다.
그냥 벨로시티를 사용하기 싫었는데...
'Java > Framework & Libs' 카테고리의 다른 글
SpringDataJPA: 스프링 프레임워크에 JPA 예외변환기 적용 (0) | 2015.08.13 |
---|---|
Quartz Schedule: DayOfMonth and DayOfWeek 관계작성에 대한 테스트 작성 (0) | 2015.02.11 |
SpringFramework 4.0 사용, JsonView MappingJacksonJsonView @Deprecate (0) | 2014.01.21 |
Hibernate, fetch=FetchType.LAZY 선언된 필드에서 문제가 생길 경우 (1) | 2014.01.10 |
Spring, AOP Logging, classcastexception proxy cannot be cast 에러 (0) | 2013.10.29 |