[Spring MVC] <spring:message> 태그로 메시지 출력하기
<spring:message> 태그로 메시지 출력하기
사용자 화면에 보일 문자열을 JSP에 직접 코딩한다고 해보자
<label>이메일</label>
<input type="text" name="email">
이메일과 같은 문자열은 로그인 폼, 회원가입 폼, 회원정보 수정 폼에서 반복해서 사용된다.
이렇게 문자열을 JSP에 하드코딩하면 2가지 문제가 발생한다.
- 동일 문자열을 변경할 때 (예를 들어, 폼에서 사용할 이메일을 이메일 주소로 변경하고 싶다면?)
- 다국어 지원 (영어권 나라에서 웹에 접속했을 때는 '이메일'이 아니라 'E-mail'로 표시하고 싶다면?)
위 문제를 해결하는 방법은 뷰 코드에서 사용할 문자열을 언어별로 파일에 보관하고 뷰 코드는 언어에 따라 파일에서 문자열을 읽어와 출력하는 것이다.
문자열을 별도 파일에 작성하고 JSP 코드에서 이를 사용하는 방법은 다음과 같다.
- 문자열을 담은 메시지 파일을 작성한다.
- 메시지 파일에서 값을 읽어오는 MessageSource 빈을 설정한다.
- JSP 코드에서 <spring:message> 태그를 이용해서 메시지를 출력한다.
메시지 파일은 Java의 .properties 파일 형식으로 작성한다. 파일 경로는 src/main/resources/message/label.properties
# label.properties
member.register=회원가입
term=약관
term.agree=약관동의
next.btn=다음단계
member.info=회원정보
email=이메일
name=이름
password=비밀번호
password.confirm=비밀번호 확인
register.btn=가입 완료
register.done={0}님, 회원가입을 완료하였습니다.
go.main=메인 화면으로 이동
다음으로 MessageSource 타입의 빈을 추가하고
@Bean
public MessageSource messageSource() { // 빈 이름은 무조건 messageSource 여야 함 !!
// 메시지 파일로 프로퍼티 형식 사용을 위한 MessageSource 구현체 클래스
ResourceBundleMessageSource ms = new ResourceBundleMessageSource();
ms.getBasenames("message.label"); // message는 패키지명으로, 여기서 message라는 폴더를 사용했다.
ms.setDefaultEncoding("UTF-8");
return ms;
}
이제 JSP 코드에선 아래와 같이 사용할 수 있다.
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<head>
<title><spring:message code="member.register" /></title>
</head>
<body>
<h2><spring:message code="term" /></h2>
<!-- 아래도 마찬가지로 위처럼 작성하면 된다. -->
</body>
'Web > Spring Web MVC' 카테고리의 다른 글
[Spring MVC] 정적 자원 매핑 - <mvc:resouces> 태그 (2) | 2019.11.27 |
---|---|
[Spring MVC] ContextLoaderListener(전역 Context 설정) (0) | 2019.11.20 |
[Spring Web MVC] ModelAndView (Controller에서 View에 데이터 전달하기) (0) | 2019.11.14 |
[Spring MVC] 커맨드 객체를 이용해서 request 파라미터 사용하기 (0) | 2019.11.13 |
[Spring JDBC] JdbcTemplate 객체 (0) | 2019.10.01 |
댓글
이 글 공유하기
다른 글
-
[Spring MVC] 정적 자원 매핑 - <mvc:resouces> 태그
[Spring MVC] 정적 자원 매핑 - <mvc:resouces> 태그
2019.11.27 -
[Spring MVC] ContextLoaderListener(전역 Context 설정)
[Spring MVC] ContextLoaderListener(전역 Context 설정)
2019.11.20 -
[Spring Web MVC] ModelAndView (Controller에서 View에 데이터 전달하기)
[Spring Web MVC] ModelAndView (Controller에서 View에 데이터 전달하기)
2019.11.14 -
[Spring MVC] 커맨드 객체를 이용해서 request 파라미터 사용하기
[Spring MVC] 커맨드 객체를 이용해서 request 파라미터 사용하기
2019.11.13