➊ 로케일을 변경하고자 LocaleChangeInterceptor를 사용합니다.
➋ paramName 프로퍼티는 로케일을 설정할 때 사용할 요청 매개변수 이름을 명시한 것입니다. paramName 프로퍼티 값으로 language를 설정했기 때문에 language 요청 매개변수를 사용해서 로케일을 바꿀 수 있습니다. 예를 들어 웹 요청 URL이 http://.../books/add?language=en이면 요청 매개변수가 language=en으로 로케일을 영어로 설정합니다.
➌ 세션에 로케일 정보를 저장하는 SessionLocaleResolver를 사용했습니다.
➍ defaultLocale 프로퍼티는 로케일을 설정할 때 사용할 기본 로케일을 명시한 것입니다. defaultLocale 프로퍼티 값을 ko로 설정했기에 한국어로 설정됩니다.
2. addBook.jsp 파일에서 한국어와 영어를 선택하여 언어를 변경할 수 있도록 추가합니다.
코드 12-6 addBook.jsp
<%@ page contentType="text/html; charset=utf-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
...
<div class="container">
<div class="float-right">
<form:form action="${pageContext.request.contextPath}/logout" method="POST">
<input type="submit" class="btn btn-success" value="Logout"/>
</form:form>
</div>
➊
<div class="float-right" style="padding-right:30px">
<a href="?language=ko">Korean</a>|<a href="?language=en">English</a>
</div>
<br><br>
<form:form modelAttribute="NewBook"
action="./add?${_csrf.parameterName}=${_csrf.token}"
class="form-horizontal"
enctype="multipart/form-data">
...
➊ language=ko는 한국어로, language=en은 영어로 바꿉니다. Korean을 클릭하면 폼의 필드 이름은 한국어로, English를 클릭하면 폼의 필드 이름은 영어로 변경됩니다.