반응형
1. 코드 구성
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
MustacheViewResolver resolver = new MustacheViewResolver();
resolver.setPrefix("classpath:/templates/");
resolver.setSuffix(".html");
registry.viewResolver(resolver);
}
}
- Mustache 템플릿 엔진을 사용해서 html 파일을 읽도록 설정을 해줬습니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>로그인 페이지입니다.</h1>
</body>
</html>
- login.html 페이지는 이렇게 구성했습니다.
@GetMapping("/login")
public String login() {
return "login";
}
- Controller 메서드는 다음과 같이 구성했습니다.
2. 문제 발생
- 한글이 ?로 깨져서 나오는 것을 확인했습니다.
- 개발자 도구에 들어가서 확인해보니 UTF-8로 되어있는 것이 아니라 ISO-8859-1로 되어있었습니다.
3. 문제 분석
- 아마도 MustacheViewResolver에서 html 파일을 읽게하는 부분에서 charset, Content-Type을 따로 설정해주지 않은 것이 문제로 보였습니다.
4. 문제 해결
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
MustacheViewResolver resolver = new MustacheViewResolver();
resolver.setPrefix("classpath:/templates/");
resolver.setSuffix(".html");
resolver.setCharset("UTF-8");
resolver.setContentType("text/html;charset=utf-8");
registry.viewResolver(resolver);
}
}
- charset과 ContentType에 대한 설정 코드를 추가해줬습니다.
- 개발자 도구에서도 Content-Type이 변경된 것을 확인해볼 수 있습니다.
반응형
'🧑🏻💻 Dev > 오류해결' 카테고리의 다른 글
[Spring | AWS EC2] AWS EC2에 @Schedule 기능 적용 시 시간 이슈 (0) | 2023.08.04 |
---|---|
@DataJpaTest Rollback 후 Id 초기화 안됨 (0) | 2023.06.19 |
[오류해결] IntelliJ 커스텀 properties 자동완성 안되는 오류 (0) | 2023.04.27 |
[오류해결] No serializer found for class (InvalidDefinitionException) (0) | 2023.04.20 |
[오류해결] JSP img GET 요청 시 한글 깨짐 (0) | 2023.03.14 |