Spring MVC完成指南(三)国际化的支持
2009-03-17 12:51
501 查看
继上一篇完成hibernate的集成后,接下来就是国际化的支持,查阅spring的文章以后,准备了一下 look,要让spring支持中文就需要用native2ascii做中文的转义。
转义方法如下:
native2ascii -encoding gb2312 messages_zh.txt > messages_zh.properties
英文的就不需要转义了。
然后有改变的代码我会帖出来。
这个项目图样
将所有的国际化的东东全放在Src的根目录下。
messages_en.properties
messages_zh.properties
这个是转义后的东东。
转义前的
messages_zh.txt
zh.bat
国际化需要的文件都已经准备完成,剩下来就是添加显示标签和加载了。
我将加载的信息放错了文件了,放到了dispatcherServlet.xml......
当我调用spring的显示标签的时候,直接报错.... ...under code............ 一堆错误信息。
我查阅相关资料后,发现在初始化的时候dispatcherServlet.xml 只会在servlet做出响应,这个时候加载信息应该加入到ApplicationContext.xml
加载信息如下:
然后,index.jsp
接着就是test.jsp
以上完成后,就可以正常的调用spring国际化的东东了。
呵呵,需要注意的是 jsp中都包含了<%@ taglib prefix="spring" uri="/WEB-INF/spring.tld"%> 这个标签。
路径可以进行统一,不过也没啥必要。
如果有什么问题欢迎和我探讨。
接着还有其他功能的整合........未完待续............ ^_^
转义方法如下:
native2ascii -encoding gb2312 messages_zh.txt > messages_zh.properties
英文的就不需要转义了。
然后有改变的代码我会帖出来。
这个项目图样
将所有的国际化的东东全放在Src的根目录下。
messages_en.properties
main.title=Hello World! title=SpringMVC username=username password=password password2=password2 submit=submit welcome=welcome loginSuccess=loginSuccess usernameerror=usernameerror passworderror=passworderror doublepassword=doublepassworderror
messages_zh.properties
title=SpringMVC/u5B9E/u4F8B username=/u8F93/u5165/u7528/u6237/u540D/: password=/u8F93/u5165/u5BC6/u7801/: password2=/u786E/u8BA4/u5BC6/u7801/: submit=/u63D0/u4EA4 welcome=/u6B22/u8FCE loginSuccess=/u6CE8/u518C/u6210/u529F usernameerror=/u7528/u6237/u540D/u4E0D/u6B63/u786E passworderror=/u5BC6/u7801/u4E0D/u6B63/u786E doublepassword=2/u6B21/u5BC6/u7801/u4E0D/u4E00/u81F4
这个是转义后的东东。
转义前的
messages_zh.txt
title=SpringMVC实例 username=输入用户名: password=输入密码: password2=确认密码: submit=提交 welcome=欢迎 loginSuccess=注册成功 usernameerror=用户名不正确 passworderror=密码不正确 doublepassword=2次密码不一致
zh.bat
native2ascii -encoding gb2312 messages_zh.txt > messages_zh.properties
国际化需要的文件都已经准备完成,剩下来就是添加显示标签和加载了。
我将加载的信息放错了文件了,放到了dispatcherServlet.xml......
当我调用spring的显示标签的时候,直接报错.... ...under code............ 一堆错误信息。
我查阅相关资料后,发现在初始化的时候dispatcherServlet.xml 只会在servlet做出响应,这个时候加载信息应该加入到ApplicationContext.xml
加载信息如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="factory" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <property name="url" value="jdbc:mysql://localhost:3306/test"></property> <property name="username" value="root"></property> <property name="password" value="xfworld"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource"> <ref bean="factory" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> <property name="annotatedClasses"> <list> <value>cn.Person</value></list> </property> </bean> <bean id="PersonDAO" class="cn.PersonDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <!-- 配置transactionManager, 注意这里引入的包的不同 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <!-- lazy-init="true" abstract="true" 拦截器的属性 --> <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager"> <ref bean="transactionManager" /> </property> <property name="transactionAttributes"> <props> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="del*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="create*">PROPAGATION_REQUIRED</prop> <prop key="add*">PROPAGATION_REQUIRED</prop> <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <!-- 只对以Dao结尾的bean作事务处理 --> <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="proxyTargetClass" > <value>true</value> </property> <property name="beanNames"> <value>*Dao</value> </property> <property name="interceptorNames"> <list> <value>transactionInterceptor</value> </list> </property> </bean> <!-- 定义国际化消息 --> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename" value="messages"/> </bean> <!-- 获取本地 --> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"/> </beans>
然后,index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="spring" uri="WEB-INF/spring.tld"%> <% 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><spring:message code="title"/></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" mce_href="styles.css"> --> </head> <body> <spring:message code="welcome"/> <form action="/my/action.do" name="User" method="post"> <spring:message code="username"/><input type="text" name="name"> <input type="submit" value="<spring:message code="submit"/>"> </form> </body> </html>
接着就是test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="spring" uri="/WEB-INF/spring.tld"%> <% 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><spring:message code="title"/></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" mce_href="styles.css"> --> </head> <body> <spring:message code="welcome"/> <spring:message code="username"/>${user.name} </body> </html>
以上完成后,就可以正常的调用spring国际化的东东了。
呵呵,需要注意的是 jsp中都包含了<%@ taglib prefix="spring" uri="/WEB-INF/spring.tld"%> 这个标签。
路径可以进行统一,不过也没啥必要。
如果有什么问题欢迎和我探讨。
接着还有其他功能的整合........未完待续............ ^_^
相关文章推荐
- Spring MVC完成指南(三)国际化的支持:Spring MVC Velocity
- Spring MVC完成指南(三)国际化的支持:Spring MVC Velocity
- Spring MVC完成指南(三)国际化的支持:Spring MVC Velocity
- Spring MVC完成指南(一)Spring MVC MultiActionController
- Spring mvc 国际化支持已经UTF-8中文乱码问题的解决方案
- 【笔记】Spring MVC学习指南(十)国际化
- (笔记)Spring MVC学习指南_国际化
- JInto做国际化对中文支持不好,国际化完成后,打开网页可能会出现乱码的问题
- Spring MVC完成指南(五)Velocity
- Spring MVC完成指南(二)Hibernate
- Spring MVC完成指南(二)Hibernate :SchemaExportTask 类的生成
- Spring MVC完成指南(四)Ajax buffalo
- Spring 国际化的支持:Spring MVC Velocity
- Spring MVC完成指南(一)Spring MVC
- 【读书笔记《Bootstrap 实战》】3.优化站点资源、完成响应式图片、让传送带支持手势
- Spring对国际化的支持
- spring mvc与hibernate整合完成增删改查
- Android 应用开发支持不同的语言国际化操作
- Spring MVC国际化的实现
- 一个自定义的 View,支持显示下载进度,完成和结束的时候会有酷酷的动画。