[SPRING] Spring Boot + Thymeleaf가 메시지 속성을 찾지 못함
SPRINGSpring Boot + Thymeleaf가 메시지 속성을 찾지 못함
Spring Boot와 Thymeleaf를 사용하여 웹 응용 프로그램을 만들려고하는데 템플릿이 등록 정보 파일에 정의 된 메시지를 사용하는 데 문제가 있습니다. 대신 속성 파일에 정의 된 메시지 대신 ?? form.welcome_en_GB ?? 콘솔에 오류가 로깅되지 않습니다.
프로젝트 구조는 다음과 같습니다.
──┬ 🗁 src
│ └─── 🗁 main
│ ├─── 🗁 java
│ │ └─── 🗁 com
│ │ └─── 🗁 package
│ │ ├─── 🗁 controller
│ │ │ └─── FormController.java
│ │ ├─── Application.java
│ │ └─── ServletInitializer.java
│ └─── 🗁 resources
│ ├─── 🗁 static
│ │ └─── home.html
│ ├─── 🗁 templates
│ │ ├─── form.html
│ │ └─── form.properties
│ └─── application.properties
└─── pom.xml
Application.java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
ServletInitializer.java
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
FormController.java
@Controller
@RequestMapping("/form")
public class FormController {
private static final Logger log = LoggerFactory.getLogger(FormController.class);
@RequestMapping(value = "/new", method = RequestMethod.GET)
public ModelAndView getNewReportForm() {
log.info("New form requested");
ModelAndView mav = new ModelAndView("form");
return mav;
}
}
form.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<title>Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" media="all"/>
</head>
<body>
<p th:text="#{form.welcome}">Welcome!</p>
</body>
</html>
form.properties
form.welcome=Hello there!
해결법
-
==============================
1.form.properties의 이름을 messages.properties로 변경하고 리소스 폴더의 루트에 위치 시키면 스프링 부트가 자동으로 선택 될 것입니다.
form.properties의 이름을 messages.properties로 변경하고 리소스 폴더의 루트에 위치 시키면 스프링 부트가 자동으로 선택 될 것입니다.
여러 개의 메시지 파일이있을 때이를 명시 적으로 MessageSource 빈에 나열하여 MVC 자동 구성에서 선택합니다 (예 :
@Bean public MessageSource messageSource() { final ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasenames("classpath:/some-mvc-messages", "classpath:/some-other-mvc-messages", "classpath:/another-projects/mvc-messages"); messageSource.setUseCodeAsDefaultMessage(true); messageSource.setDefaultEncoding("UTF-8"); messageSource.setCacheSeconds(5); return messageSource; }
-
==============================
2.messages.properties 파일을 사용할 때 같은 문제가 있습니다. 스프링 부트 파일에 @EnableAutoConfiguration이 추가되지 않았습니다.
messages.properties 파일을 사용할 때 같은 문제가 있습니다. 스프링 부트 파일에 @EnableAutoConfiguration이 추가되지 않았습니다.
@SpringBootApplication @EnableAutoConfiguration public class Run { public static void main(String[] args) { SpringApplication.run(Run.class, args); System.out.println("Run"); } }
그것의 일을 추가 한 후에
from https://stackoverflow.com/questions/36545667/spring-boot-thymeleaf-not-finding-message-properties by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] spring rest 템플릿을 사용하여 서비스에 HTTP 헤더 (JWT Token) 전파 (0) | 2019.06.26 |
---|---|
[SPRING] Autowired는 Custom Constraint validator에서 Null 값을줍니다. (0) | 2019.06.26 |
[SPRING] Spring jdbctemplate과 Hibernate [duplicate]의 차이점 (0) | 2019.06.25 |
[SPRING] mockito의 Spring 값 주입 (0) | 2019.06.24 |
[SPRING] @size (max = value)와 @min (value) 사이의 차이점 @max (value) (0) | 2019.06.24 |