知识大全 Spring i18n的better practice
Posted 知
篇首语:成功无须解释,失败却有许多托辞。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Spring i18n的better practice相关的知识,希望对你有一定的参考价值。
Spring i18n的better practice 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
因为希望把SpringSide搞成国际化项目 i n就成了必做的事情 照抄appfuse 折腾了很久后才发现appfuse式的sample总是只顾著演示自己的一亩三分地而忽略了很多其他东西 从基础开始 没有Spring时 Java的i n是这样的 jsp环境 首先写一个messages zh_CN properties文件 放在class path也就是/WEB INF/classes里 wele=欢迎 然后用native ascii exe把它转为 wele=\\u b \\u fce 在web xml中定义messages文件 <context param> <param name>javax servlet jsp jstl fmt localizationContext</param name> <param value>messages</param value> </context param> 最后在jsp里使用<%@ taglib uri= prefix= fmt %><fmt:message key= wele />如果有多个Resource Bundle文件 就要在jsp里用<ftm:bundle>定义了 pure Java环境 ResourceBundle rb = ResourceBundle getBundle( messages ); String wele = rb getString( wele ); Spring的增强及appfuse的做法 Spring增加了MessageSource的概念 一是ApplicationContext将充当一个单例的角色 不再需要每次使用i 时都初始化一次ResourceBundle 二是可以代表多个Resource Bundle 在ApplicationContext的定义文件中 增加如下节点 <bean id= messageSource class= ntext support ResourceBundleMessageSource > <property name= basename value= messages /> </bean> 则在pure java环境中 context getMessage( wele null Locale CHINA) 而在jsp环境中 Controller调用JSTL viewResolver再调用Jsp时 <fmt:message>将继续发挥它的功效 因此 appfuse等sample都是在appfuse servlet xml 中定义一个<messageSource> Better Practice 要不要定义javax servlet jsp jstl fmt localizationContext Appfuse等sample 都是假定大家完全使用Controller作访问入口 jsp甚至藏在了/web inf/中 而很不幸 大家的项目可能还是有很多直接访问jsp的地方 而直接访问jsp时 <messageSource>节点是没有作用的 但如果定义了javax localizationContext 又会让MessageSource失效 messageSource定义在ApplicationContext xml还是appfuse servlet xml ApplicationContext* xml由ContextLoaderListener载入 而appfuse servlet xml靠dispatchServlet载入 并拥有一个指向ApplcationContex* xml指针 所以 appfuse servlet xml能看到定义在ApplcationContext里的东西 而反之做不到 明显 把<messageSource>定义在ApplicationContext xml 能获得更好的可见性 但是appfuse没有在pure Java代码中使用i n 也就没有考虑这个问题 坚决不用鸡肋级<spring:message> tag 连appfuse也不用它 可见多么鸡肋 因为fmt在找不到资源时 最多显示???wele??? 而<spring:message>则会抛出异常 谁会喜欢这种定时炸弹阿 有趣的theme 解决 做成图片的文字 的国际化 theme也就是把message的原理发挥了一下 让不同语言的美术字图片的路径也可以定义在theme_zh_CN properties和theme_en_US properties中 终于有一个不那么鸡肋的spring tag了 简单归纳 jstl中仍然使用标准的<ftm:message>及其定义? java中使用spring的<messageSource>实现单例 用<spring:theme>解决那些做成图片的文字的国际化问题 Spring 还有session cookie locale resolver 到时可以看一下 cha138/Article/program/Java/ky/201311/28843相关参考
针对xxxclass建立xxxproperties文件可以对class中的Output设置本地化输出更常用的方法是正对package建立packageNameproperties在其中设置Action
SPRING容器外访问SPRING 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在JSP或者S
Spring入门之理解Spring的打包方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 获取
知识大全 Spring系列第2部分:当Hibernate遇上Spring
Spring系列第2部分:当Hibernate遇上Spring 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
知识大全 Google与Spring深度合作 为Spring开启新的篇章
Google与Spring深度合作为Spring开启新的篇章 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
通过前一阵对spring的使用后有对他有了进一步的了解 下面就对spring说一下把有什么不同意见的希望大家一起探讨 第一spring框架他是一个分层的框架 其实spring并不是一个要么全
如何学习Spring? 你可以通过下列途径学习spring()spring下载包中doc目录下的MVCstepbystep和sample目录下的例子都是比较好的spring开发的例子 ()Ap
在Spring中IOC容器的重要地位我们就不多说了对于Spring的使用者而言IOC容器实际上是什么呢?我们可以说BeanFactory就是我们看到的IoC容器当然了Spring为我们准备了许多种
Spring整合Struts 虽然Spring也提供了自己的MVC组件但一来Spring的MVC组件过于繁琐二 来Struts的拥护者实在太多因此很
Spring的事务 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 今天对spring的AOP事务