jsf集成spring_Spring和JSF集成:国际化和本地化
jsf集成spring
作为<f:loadBundle>的替代方案,我一直在开发一个新的<s:messageSource>组件,该组件可用于公开来自任何Spring MessageSource的消息,并提供其他一些优点。
新组件是<f:loadBundle>的直接替代。
<s:messageSource source="#{messageSource}" var="messages"/>
<p><h:outputText value="#{messages.hello}"/>
</p>
source属性可以是任何解析为MessageSource实例的EL表达式。 如果未指定源,则将使用Spring ApplicationContext 。 var属性是将用于访问消息的变量的名称。
如果您在XHTML中引用了忘记定义的消息,则将看到警告消息(在开发中)或抛出异常(在生产中)。
与标准JSF一样,您的消息并包含与<h:outputFormat>一起使用的占位符
pages.message.simple.welcome=Welcome to {1} with {0}
<h:outputFormat value="#{messages.welcome}"><f:param value="Spring"/><f:param value="JSF"/>
</h:outputFormat>
<h:outputFormat>标签有点冗长,因此为了方便起见,Spring消息可以用作Map 。 这使您可以更简洁地引用占位符:
<h:outputText value="#{messages.welcome['Spring']['JSF']}"/>
相同的语法允许您将Java对象映射到消息。 默认情况下,对象是通过从类名称构建消息键来映射的。 例如,以下类:
package org.example;
public class ExampleObject {
}
可以在JSF中引用:
<h:outputText value="#{messages[exampleInstance]}"/>
解决以下消息:
org.example.ExampleObject=example
对于枚举对象,消息键包括枚举名称和类:
package org.example;
public enum ExampleObject {ONE, //mapped to message key org.example.ExampleObject.ONETWO //mapped to message key org.example.ExampleObject.TWO
}
对象消息还可以引用应构成消息一部分的属性:
org.example.PersonName=Name is {first} {last}
...package org.example;
public class PersonName {...public String getFirst() {...}public String getLast() {...}
}
您还可以通过使用实现org.springframework.springfaces.message.ObjectMessageSource接口的消息源来定义自己的对象消息策略。
如果您想查看其中的任何代码,请查看GitHub Project中的org.springframework.springfaces.message和org.springframework.springfaces.message.ui软件包。
参考: Phil Webb博客博客中来自我们JCG合作伙伴 Phillip Webb的Spring和JavaServer Faces集成:国际化和本地化 。
翻译自: https://www.javacodegeeks.com/2012/06/spring-jsf-integration.html
jsf集成spring
jsf集成spring_Spring和JSF集成:国际化和本地化相关推荐
- jsf集成spring_Spring和JSF集成:异常处理
jsf集成spring 大多数JSF开发人员都会熟悉"发生错误"页面,当在他们的代码某处引发意外异常时,该页面就会显示. 该页面在开发时确实很有用,但对于生产应用程序通常不是您想要 ...
- jsf集成spring_Spring和JSF集成:MVC螺母和螺栓
jsf集成spring 过去,我曾尝试将JSF与Spring MVC集成在一起,尽管我的第一次尝试成功了,但这远非理想. 这次,我决定做出一些关键决定来帮助我集中精力: 向后兼容. 支持JSF 1.2 ...
- jsf集成spring_Spring和JSF集成:动态导航
jsf集成spring 通常,您的JSF应用程序将需要超越基本的静态导航并开始做出动态导航决策. 例如,您可能想根据用户的年龄重定向他们. 大多数JSF教程建议通过将命令的action属性绑定到支持b ...
- jsf集成spring_Spring和JSF集成:分页
jsf集成spring 使用大型数据集时,通常需要以分页格式显示数据. 分页是一个有趣的问题,因为它倾向于跨越应用程序的所有层,从视图层通过应用程序服务一直到对数据库的原始调用. 在获取分页数据时,有 ...
- jsf集成spring_Spring和JSF集成:转换器
jsf集成spring 使用任何Web框架时,都不可避免地需要将用户输入的数据从String为其他类型. 尽管Spring和JSF在设计和功能上确实有很大的不同,但它们都具有转换器策略来处理此问题. ...
- jsf集成spring_Spring和JSF集成:导航
jsf集成spring 我希望这是有关我在Spring和JavaServer Faces之间提供深度集成的努力的一系列博客中的第一篇. 这里提到的所有内容都是"正在进行中的工作", ...
- Spring和JSF集成:国际化和本地化
如果您正在开发针对多种语言的JSF应用程序,那么您可能很熟悉<f:loadBundle>标记. 即使您的应用程序不支持使用消息包的国际化仍然是一个好主意. 在<f:loadBundl ...
- jsf集成spring_Spring JSF集成
jsf集成spring Welcome to Spring JSF integration tutorial. JSF is a component based framework with grea ...
- 15 三明治集成方法和混合策略集成方法
三明治集成方法和混合策略集成方法 前言 三明治集成方法 混合策略集成方法 总结 前言 关于集成测试方法今天我们再学习两个方法,三明治集成方法和混合策略集成方法. 三明治集成方法 采用三明治方法的优点是 ...
最新文章
- c语言考试经典编程题目及答案,经典练习C语言编程的题目及答案整理
- U盘加载速度慢的解决方法
- 开源心得:一个Ubuntu用户的使用体悟
- Leet Code OJ 110. Balanced Binary Tree [Difficulty: Easy]
- Win10下VS2015(WDK10)驱动开发环境配置
- Js 怎么遍历json对象所有key及根据动态key获取值(根据key值获取相应的value值)...
- Uva 10305 - Ordering Tasks
- 约束最优化方法 (四) 乘子法
- Algs4-1.1.6下面这段程序会打印出什么
- 149.直线上最多的点数
- 一些经久不衰的linux 视频教程列表
- 玉柴spn码故障对照表_故障代码一览表
- 图的同构识别算法——C++代码实现
- leetcode:94. 二叉树的中序遍历
- USB通信协议与供电协议全解
- python系列——多线程之Semaphore信号量及
- Android Multimedia Framework overview(多媒体框架概述)--base on jellybean(一)
- linux反查本机域名(linux怎么查本机显卡)
- 历年四级作文范文(1994.6-2007.6)
- linux 鸟哥私房菜 从0到1 笔记(五)