- Arawn's Dev Blog
- Outsider's Dev Story
- Toby's Epril
- Benelog
- NHN 개발자 블로그
- SK 플래닛 기술 블로그
- OLC CENTER
- 소프트웨어 경영/공학 블로그
- 모바일 컨버전스
- KOSR - Korea Operating System …
- 넥스트리 블로그
- 리버스코어 ReverseCore
- SLiPP
- 개발자를 위하여... (Nextree 임병인 수석)
- "트위터 부트스트랩: 디자이너도 놀라워할 매끈하고 직관…
- Learning English - The English…
- real-english.com
- 'DataScience/Deep Learning' 카테…
- Deep Learning Summer School, M…
- Deep Learning Courses
민서네집
Thymeleaf 에서 properties 파일 참조하기. 본문
Thymeleaf 에서 국제화를 위한 ResourceBundleMessage 는 #{...} 으로 쉽게 참조가 되는데, 프로그램 설정용으로 만든 일반 config.properties 파일은 참조하는 방법을 몰랐다.
ResourceBundleMessage 에 추가를 해주면 #{...} 으로 참조가 되는데, Messages_ko.properties 파일과 Messages_en.properties 파일에 동일하게 추가를 해주어야 하고, 프로그램 설정값이 국제화 메시지 파일에 들어가서 관리도 힘들어진다.
config.properties 파일을 참조할 수 있는 방법을 검색해 보았는데, 도움이 될만한 글이...
http://forum.thymeleaf.org/Access-Spring-properties-td4025970.html
Well yes - it's different. But important to the gui nonetheless. Because some settings are locale-independent. For example a contact phone number you want to show in the "about" dialog. The url to report an error. The url for an image in the gui. Etc...
I've found a way, but a bit heavy on the markup:
(1) Add ApplicationContext.getEnvironment() as a variable to the template context. Ie env.
(2) In the markup the settings can be read as: th:version="${env.getProperty('build.version')}".
But I would really rather have ${build.version} work also.
setCommonMessages are locale independent. How ever if you have an own solution it's fine.
두번째 방법은 setCommonMessages() 메서드는 스프링 3.2 버전부터 지원하는 메서드라 통과~
첫번째 방법을 응용해 보기로 했다.
Spring 설정 파일에서는 다음을 추가.
<util:properties id="config" location="classpath:config/config.properties" />
HandlerInterceptorAdapter 클래스를 상속받은 클래스를 만들어서 postHandle() 메서드에서 다음과 같이 설정.
@Autowired
private Properties config;
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
if( modelAndView != null ) {
modelAndView.addObject("config", config);
}
...
}
사용할 때는 Thymeleaf html 에서 다음과 같이...
<script type="text/javascript" th:src="${config.getProperty('server.ip') + '/scripts/common.js'}"></script>
var gSeverUrl = [[${config.getProperty('server.ip')}]];
참고로, Thymeleaf 에서 bean 을 참조하는 방법은 다음 URL을 참조한다.
http://doanduyhai.wordpress.com/2012/04/14/spring-mvc-part-iv-thymeleaf-advanced-usage/
[SPRING] SP EL 사용한 Properties 파일 내용 사용
'Spring' 카테고리의 다른 글
"쉽게 따라하는 자바웹개발" project error/warning 없애기. (2) | 2013.10.17 |
---|---|
request.getAttribute("javax.servlet.forward.request_uri"), request.getAttribute("javax.servlet.forward.path_info") (0) | 2013.10.14 |
Spring profile 기능으로 운영/개발 환경 구성하기 (0) | 2013.08.21 |
[spring] Bean의 초기화 코드 넣을때 - Spring - How to call a method after bean initialization is complete? (0) | 2013.08.19 |
Thymeleaf (0) | 2013.08.06 |