日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

jsf集成spring_Spring和JSF集成:转换器

發布時間:2023/12/3 javascript 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jsf集成spring_Spring和JSF集成:转换器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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 Converter<MyCustomType> {... }

您還可以使用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.html

jsf集成spring

總結

以上是生活随笔為你收集整理的jsf集成spring_Spring和JSF集成:转换器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。