spring mvc 国际化

在class路径下创建两个properties文件

              my_en_GB.properties(英式英语)

              my_zh_CN.properties(中文)


在spring.xml中  注册国际化

<!-- ID名固定  messageSource -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
				<!-- 读取 /cn/et/springmvc/lesson04/resource/my  的properties文件-->
	<property name="basename" value="/cn/et/springmvc/lesson04/resource/my"></property>
</bean>


在springmvc.xml中配置

<!-- 该拦截器用于拦截url上的参数 -->
<mvc:interceptors>
	<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
		<property name="paramName" value="a"></property>   //value=a  代表页面上带上的参数
	</bean>
</mvc:interceptors>
会跳到一个中转的页面  此页面跳转到原页面
@RequestMapping(value="/mid",method=RequestMethod.GET)
public String mid() throws Exception{
       return "/lesson04/reg.jsp";
}





<!-- 参数需要被临时存储在某个地方  当用户再次访问 使用之前设置的参数
		只是当jsp经过action之后才会将当前的国家和语言存储在session中  同时从session中获取   a=zh_CN
	 -->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"></bean>
点击显示中文时  此次会话都显示中文

验证国际化在springmvc.xml中配置

<!-- 自定义验证器  手动注入国际化 -->
<bean id="localValidatorFactoryBean" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
	<property name="validationMessageSource" ref="messageSource"></property>
</bean>
<!-- 启用注解驱动 -->
<mvc:annotation-driven validator="localValidatorFactoryBean">

提交验证的中转

@RequestMapping(value="/myreg",method=RequestMethod.POST)
public String mid(@ModelAttribute("userInfo") @Valid UserInfo user,BindingResult result) throws Exception{
	//出现错误
	if(result.hasErrors()){
		return "/lesson04/reg.jsp";
	}
	//通过返回空白页面
	return null;
}



页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@taglib uri="http://www.springframework.org/tags" prefix="s"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'reg.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  <script type="text/javascript">
  function checkSubmit(){
	  	/*var userName=document.getElementsByName("userName")[0].value;
	  	if(userName==null||userName==""){
	  		alert("用户名不能为空");
	  		return;
	  	}
	  	var password=document.getElementsByName("password")[0].value;
	  	var repassword=document.getElementsByName("repassword")[0].value;
	  	if(password!=repassword){
	  		alert("两次输入密码不一致");
	  		return;
	  	}*/
	  	document.forms[0].submit();
  	}
  </script>
  <a href="${pageContext.request.contextPath}/mid?a=zh_CN">中文</a><a href="${pageContext.request.contextPath}/mid?a=en_GB">英文</a>
  <body>
    <form action="${pageContext.request.contextPath}/myreg" method="post"> 
    	<s:message code="userName"></s:message>:<input type="text" name="userName"><font color=red><form:errors path="userInfo.userName"></form:errors></font><br/>
    	<s:message code="passWord"></s:message>:<input type="password" name="password"><font color=red><form:errors path="userInfo.password"></form:errors></font><br/>
    	<s:message code="ConfirmPassword"></s:message>:<input type="password" name="repassword"><font color=red><form:errors path="userInfo.repassword"></form:errors></font><br/>
    	<s:message code="mailbox"></s:message>:<input type="text" name="email"><font color=red><form:errors path="userInfo.email"></form:errors></font><br/>
    	<s:message code="age"></s:message>:<input type="text" name="age"><font color=red><form:errors path="userInfo.age"></form:errors></font><br/>
    	<s:message code="phone"></s:message>:<input type="text" name="phone"><font color=red><form:errors path="userInfo.phone"></form:errors></font><br/>
    	<s:message code="website"></s:message>:<input type="text" name="website"><font color=red><form:errors path="userInfo.website"></form:errors></font><br/>
    	<s:message code="birth"></s:message>:<input type="text" name="date"/><font color=red><form:errors path="userInfo.date"></form:errors></font><br/>
    	<input type="button" οnclick="checkSubmit()" value="<s:message code="refer"></s:message>">
    </form>
  </body>
</html>


浏览器效果

当点击英文时

当点击中文时



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值