springMVC 국제 화 설정 및 사용
46556 단어 SpringMVC
수요
입력 url: 중국어 인터페이스 보 여주 기
http://localhost:8080/MySSM/user?lang=zh
URL 입력: 영문 인터페이스 보 여주 기
http://localhost:8080/MySSM/user?lang=en
다음은 제 demo 프로젝트 의 예 입 니 다.
1. 공정 구조:
2. springMVC 설정 파일 의 국제 화 설정:
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:messages" />
<property name="useCodeAsDefaultMessage" value="true" />
bean>
<mvc:interceptors>
<bean class="com.cy.interceptor.LanguageInterceptor">
<property name="paramName" value="lang" />
bean>
mvc:interceptors>
제 차단 기 를 다시 사 용 했 습 니 다: com. cy. interceptor. LanguageInterceptor
원래 차단기 org. spring from work. web. servlet. i18n. Locale Change Interceptor 때문에 브 라 우 저 는 lang = en 을 입력 해 야 합 니 다.US,lang=zh_CN, 언어 를 바 꿀 수 있 습 니 다.그러나 입력 이 이렇게 번 거 로 운 것 은 일반적으로 zh 중국어, en 영어 라 고 생각 하기 때문이다.
3. 언어 LanguageInterceptor. java:
나 는 단지 Locale Change Interceptor 소스 코드 를 일부분 복사 해 왔 을 뿐이다.주로:
locale Resolver. setLocale (request, response, newLocale) 에서 언어 를 설 정 했 습 니 다.
package com.cy.interceptor;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import org.springframework.web.servlet.support.RequestContextUtils;
/**
*
* @author CY
*
*/
public class LanguageInterceptor extends HandlerInterceptorAdapter{
/**
* Default name of the locale specification parameter: "locale".
*/
public static final String DEFAULT_PARAM_NAME = "locale";
private String paramName = DEFAULT_PARAM_NAME;
public void setParamName(String paramName) {
this.paramName = paramName;
}
public String getParamName() {
return this.paramName;
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Locale newLocale = getLocale(request.getParameter(getParamName()));
LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
if (localeResolver == null) {
throw new IllegalStateException("No LocaleResolver found: not in a DispatcherServlet request?");
}
localeResolver.setLocale(request, response, newLocale);
return true;
}
// language Locale
public static Locale getLocale(String language){
Locale locale = new Locale("zh", "CN");
if(language!=null && language.equals("en")){
locale = new Locale("en", "US");
}
return locale;
}
}
4. controller 에서 messages 설정 파일 의 값 을 가 져 오 려 면 어떻게 합 니까?
다음은 일부 코드 입 니 다.
import org.springframework.web.servlet.support.RequestContext;
import org.springframework.web.servlet.support.RequestContextUtils;
import java.util.ResourceBundle;
@Controller
public class UserController {
private static Logger logger = Logger.getLogger(UserController.class);
@Autowired
private UserService userService;
/**
* key value
* @param request
* @param key
* @return
*/
public static String getMessage(HttpServletRequest request, String key){
Locale currentLocale = RequestContextUtils.getLocale(request);
String lang = currentLocale.getLanguage();
ResourceBundle bundle = ResourceBundle.getBundle("messages_"+lang, currentLocale);
return bundle.getString(key);
}
/**
* key value
* @param request
* @param key
* @return
*/
public static String getMessage2(HttpServletRequest request, String key){
RequestContext requestContext = new RequestContext(request);
String value = requestContext.getMessage(key);
return value;
}
@RequestMapping("/user")
public ModelAndView getUsers(HttpServletRequest request){
List userList = userService.getUsers();
ModelAndView mv = new ModelAndView();
// message
//String showUserInfo = getMessage(request, "showUserInfo");
String showUserInfo = getMessage2(request, "showUserInfo");
mv.addObject("showUserInfo", showUserInfo);
mv.addObject("userList", userList);
mv.setViewName("user");
return mv;
}
}
5. jsp 에서 spring: message code: 주로:
@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="resources/bootstrap/bootstrap.min.css">
<title><spring:message code="userManage"/>title>
<style type="text/css">
.container{
margin-top: 30px;
}
.imgclass{
height: 100px;
}
style>
head>
<body>
<div class="container">
<p class="text-center bg-success">${showUserInfo}p>
<div class="form-horizontal">
<c:forEach var="user" items="${userList }">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label"><spring:message code="userName"/>label>
<div class="col-sm-10">
<input class="form-control" placeholder="Email" value="${user.name }">
div>
div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label"><spring:message code="age"/>label>
<div class="col-sm-10">
<input class="form-control" placeholder="Password" value="${user.age }">
div>
div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label"><spring:message code="photoName"/>label>
<div class="col-sm-10">
<input class="form-control" value="${user.photoName }">
div>
div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label"><spring:message code="photo"/>label>
<div class="col-sm-10">
<img class="imgclass" src="getImg?username=${user.name }&photoName=${user.photoName}"/>
div>
div>
c:forEach>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<a href="toAddUser" class="btn btn-default"><spring:message code="addUser"/>a>
div>
div>
div>
div>
body>
<script src="resources/js/jquery.min.js">script>
<script src="resources/bootstrap/bootstrap.min.js">script>
<script type="text/javascript">
$(function(){
});
script>
html>
6.messages_zh. properties 와 messagesen. properties 설정:
userManage=userManagement
userName=username
age=age
photoName=photo name
photo=photo
addUser=add user
showUserInfo=this is display user information
userManage=\u7528\u6237\u7BA1\u7406
userName=\u59D3\u540D
age=\u5E74\u9F84
photoName=\u7167\u7247\u540D\u79F0
photo=\u7167\u7247
addUser=\u589E\u52A0\u7528\u6237
showUserInfo=\u8FD9\u91CC\u662F\u5C55\u73B0\u7528\u6237\u4FE1\u606F
효과:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ssm 프레임워크 업로드 이미지 로컬 및 데이터베이스에 저장 예시본고는 ssm 프레임워크 업로드 이미지를 로컬과 데이터베이스에 저장하는 예시를 소개하고 주로 Spring+SpringMVC+MyBatis 프레임워크를 사용하여 ssm 프레임워크 업로드 이미지의 실례를 실현했다. 구체...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.