陕西做天然气公司网站,seo公司品牌哪家好,网上购物商城网站,windows优化大师下载安装jsf集成spring使用任何Web框架时#xff0c;都不可避免地需要将用户输入的数据从String为其他类型。 尽管Spring和JSF在设计和功能上确实有很大的不同#xff0c;但它们都具有转换器策略来处理此问题。 让我们从春天开始。 Spring 3引入了一个全新的转换框架#xff0c;该框… jsf集成spring 使用任何Web框架时都不可避免地需要将用户输入的数据从String为其他类型。 尽管Spring和JSF在设计和功能上确实有很大的不同但它们都具有转换器策略来处理此问题。 让我们从春天开始。 Spring 3引入了一个全新的转换框架该框架允许将任何类型的对象转换为任何其他类型只要注册了适当的转换器。 基思·唐纳德Keith Donald撰写了有关新转换过程如何工作的文章。 Spring MVC在版本3中也进行了更新以在处理请求参数时使用转换器服务例如将String参数传递给以下控制器方法 RequestMapping
public void example(RequestParam Integer value) 将导致StringToNumber转换器通过StringToNumberConverterFactory 运行以创建等效的Integer 。 与Spring不同JSF中的转换器仅处理对象与字符串之间的转换。 javax.faces.convert.Converter接口定义了两个方法 getAsString 在渲染时使用将对象转换为字符串而getAsObject 在解码回发时使用将先前渲染的字符串转换回对象。 默认情况下您可以通过将条目添加到faces-config.xml或使用FacesConverter批注向JSF注册转换器。 我一直在努力允许您通过简单地将它们声明为Spring bean来注册JSF转换器。 与普通JSF相比使用Spring bean具有许多优点。 例如您可以轻松注入其他协作者bean并且可以使用Spring AOP。 要使用转换器bean只需从JSF引用其ID Component
public class MyConverter implements Converter {Autowireprivate MyHelper helper;...
}h:inputText value”#{bean.value}”f:converter converterId”myConverter”/
/h:inputText 为了一次又一次地保存对相同转换器ID的引用JSF允许您为特定类“注册”转换器。 为了通过Spring支持这一点引入了一个新的ForClass批注 Component
ForClass(MyCustomType.class)
public class MyConverter implements Converter {...
} 上面的示例在每次MyCustomType对象需要转换时都将使用MyConverter 。 为了方便起见我还提供了支持泛型的javax.faces.convert.Converter的变体。 org.springframework.springfaces.convert.Converter接口具有与标准JSF版本相同的签名。 当将此接口与ForClass一起使用时您还可以省略注释上的值 Component
ForClass
public class MyConverter implements ConverterMyCustomType {...
} 您还可以使用ConditionalForClass接口实现更复杂的“类”绑定有关详细信息请参见JavaDoc 。 最后还支持使用Spring MVC中的JSF转换器无论如何注册。 GenericFacesConverter是一个Spring ConditionalGenericConverter 在注册后会自动委托给JSF。 例如假设为MyCustomType注册了MyConverter则以下MVC映射将起作用 RequestMapping(/example)
public void example(RequestParam MyCustomType value) {....
} 如果需要引用特定的JSF转换器也可以使用FacesConverterId批注 RequestMapping(/example)
public void example(RequestParam FacesConverterId(myOtherConverter) MyOtherCustomType value) {....
} 如果您想了解这一点请从展示应用程序中查看ConverterExampleController 。 参考 集成Spring和JavaServer Faces Phil Webb博客博客中我们JCG合作伙伴 Phillip Webb的转换器 。 翻译自: https://www.javacodegeeks.com/2012/06/spring-jsf-integration-converters.htmljsf集成spring