@Controller
public class TestController {
@GetMapping("/test")
public ModelAndView test() {
ModelAndView mv = new ModelAndView();
mv.addObject("test", "테스트");
return mv;
}
}
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
@Bean
public FilterRegistrationBean<CharacterEncodingFilter> characterEncodingFilter() {
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("UTF-8");
filter.setForceEncoding(true);
FilterRegistrationBean<CharacterEncodingFilter> registration = new FilterRegistrationBean<>(filter);
registration.addUrlPatterns("/*");
return registration;
}
server.xml
파일에 들어가서 확인하기, 보통 톰캣 서버에 있는 파일일 경우가 많다.<Connector URIEncoding="UTF-8" ... />
- 톰캣을 새로 다운 받아 사용했던 나와 같은 경우 이 문제 때문이었다.
@RestController
public class TestController {
@GetMapping("/test")
public Map<String, String> test() {
return Map.of("test", "테스트");
}
}
@Bean
public HttpMessageConverter<?> jsonConverter() {
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
converter.setDefaultCharset(StandardCharsets.UTF_8);
return converter;
}
Reference: