국제화 관련 질문입니다.
- 작성자 :
- 최*섭
- 작성일 :
- 2015-09-30 20:15:02
- 조회수 :
- 1,190
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
이번에 국제화를 하면서 사이트내 정보들도 참조하여 하다가 잘 안되서 질문드립니다.
제가 하고 싶은 부분은 사용자화면에서 한국어, 영어 버튼을 줘서 클릭시 해당 언어로 변경되게 하려고 했습니다.
디렉토리구조는 egovframework web project로 generate example체크 후 만든 구조와 같이 했습니다.
우선 web.xml에
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
추가하였습니다. 그리고 src/main/resources/egovframework/spring/context-common.xml에
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:/message/message-common</value>
</list>
</property>
<property name="cacheSeconds">
<value>60</value>
</property>
</bean>
<!-- 세션을 이용한 Locale 이용시-->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="language" />
</bean>
<bean id="annotationMapper" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<ref bean="localeChangeInterceptor" />
</list>
</property>
</bean>
를 추가하였습니다.
그리고 페이지 호출시 http://localhost:8080/edskcom/boardlist?language=en 이렇게 주었는데 변경이 되지 않습니다.
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> 이부분에 노란 밑줄이 가고
The fully qualified name of the bean's class, except if it serves only as a parent definition for
child bean definitions. 이런 메세지가 뜹니다.
어떻게 해야 제가 원하는대로 할 수 있을까요??
제가 하고 싶은 부분은 사용자화면에서 한국어, 영어 버튼을 줘서 클릭시 해당 언어로 변경되게 하려고 했습니다.
디렉토리구조는 egovframework web project로 generate example체크 후 만든 구조와 같이 했습니다.
우선 web.xml에
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
추가하였습니다. 그리고 src/main/resources/egovframework/spring/context-common.xml에
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:/message/message-common</value>
</list>
</property>
<property name="cacheSeconds">
<value>60</value>
</property>
</bean>
<!-- 세션을 이용한 Locale 이용시-->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="language" />
</bean>
<bean id="annotationMapper" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<ref bean="localeChangeInterceptor" />
</list>
</property>
</bean>
를 추가하였습니다.
그리고 페이지 호출시 http://localhost:8080/edskcom/boardlist?language=en 이렇게 주었는데 변경이 되지 않습니다.
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> 이부분에 노란 밑줄이 가고
The fully qualified name of the bean's class, except if it serves only as a parent definition for
child bean definitions. 이런 메세지가 뜹니다.
어떻게 해야 제가 원하는대로 할 수 있을까요??
A
안녕하세요.
표준프레임워크 센터입니다.
먼저 eGovframework - web project로 example까지 적용하셨으면 따른 설정 없이 국제화(다국어)가 적용되어 있습니다.
국제화 관련 설정은 WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml에 보시면
설정을 확인 하실수 있습니다.
질문의 설정의 context-common.xml에 추가 하신 내용중 dispatcher-servlet.xml에 설정하실 부분을 같이 설정하셨으며,
interceptor하기 위해 class를 DefaultAnnotationHandlerMapping이 아닌
RequestMappingHandlerMapping을 사용하시면 될 듯 합니다.
추가로 꼭 DefaultAnnotationHandlerMapping을 사용하시려면
그에 해당하는 adapter를 사용하셔야 합니다.
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
감사합니다.
표준프레임워크 센터입니다.
먼저 eGovframework - web project로 example까지 적용하셨으면 따른 설정 없이 국제화(다국어)가 적용되어 있습니다.
국제화 관련 설정은 WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml에 보시면
설정을 확인 하실수 있습니다.
질문의 설정의 context-common.xml에 추가 하신 내용중 dispatcher-servlet.xml에 설정하실 부분을 같이 설정하셨으며,
interceptor하기 위해 class를 DefaultAnnotationHandlerMapping이 아닌
RequestMappingHandlerMapping을 사용하시면 될 듯 합니다.
추가로 꼭 DefaultAnnotationHandlerMapping을 사용하시려면
그에 해당하는 adapter를 사용하셔야 합니다.
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
감사합니다.