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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

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

發(fā)布時(shí)間:2023/12/3 javascript 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jsf集成spring_Spring和JSF集成:转换器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

jsf集成spring

使用任何Web框架時(shí),都不可避免地需要將用戶輸入的數(shù)據(jù)從String為其他類型。 盡管Spring和JSF在設(shè)計(jì)和功能上確實(shí)有很大的不同,但它們都具有轉(zhuǎn)換器策略來處理此問題。 讓我們從春天開始。

Spring 3引入了一個(gè)全新的轉(zhuǎn)換框架,該框架允許將任何類型的對象轉(zhuǎn)換為任何其他類型(只要注冊了適當(dāng)?shù)霓D(zhuǎn)換器)。 基思·唐納德(Keith Donald)撰寫了有關(guān)新轉(zhuǎn)換過程如何工作的文章。 Spring MVC在版本3中也進(jìn)行了更新,以在處理請求參數(shù)時(shí)使用轉(zhuǎn)換器服務(wù),例如,將String參數(shù)傳遞給以下控制器方法:

@RequestMapping public void example(@RequestParam Integer value)

將導(dǎo)致StringToNumber轉(zhuǎn)換器(通過StringToNumberConverterFactory )運(yùn)行以創(chuàng)建等效的Integer 。
與Spring不同,JSF中的轉(zhuǎn)換器僅處理對象與字符串之間的轉(zhuǎn)換。 javax.faces.convert.Converter接口定義了兩個(gè)方法: getAsString (在渲染時(shí)使用)將對象轉(zhuǎn)換為字符串,而getAsObject (在解碼回發(fā)時(shí)使用)將先前渲染的字符串轉(zhuǎn)換回對象。

默認(rèn)情況下,您可以通過將條目添加到faces-config.xml或使用@FacesConverter批注向JSF注冊轉(zhuǎn)換器。 我一直在努力允許您通過簡單地將它們聲明為Spring bean來注冊JSF轉(zhuǎn)換器。 與普通JSF相比,使用Spring bean具有許多優(yōu)點(diǎn)。 例如,您可以輕松注入其他協(xié)作者bean,并且可以使用Spring AOP。 要使用轉(zhuǎn)換器bean,只需從JSF引用其ID:

@Component public class MyConverter implements Converter {@Autowireprivate MyHelper helper;... }<h:inputText value=”#{bean.value}”><f:converter converterId=”myConverter”/> </h:inputText>

為了一次又一次地保存對相同轉(zhuǎn)換器ID的引用,JSF允許您為特定類“注冊”轉(zhuǎn)換器。 為了通過Spring支持這一點(diǎn),引入了一個(gè)新的@ForClass批注:

@Component @ForClass(MyCustomType.class) public class MyConverter implements Converter {... }

上面的示例在每次MyCustomType對象需要轉(zhuǎn)換時(shí)都將使用MyConverter 。

為了方便起見,我還提供了支持泛型的javax.faces.convert.Converter的變體。 org.springframework.springfaces.convert.Converter接口具有與標(biāo)準(zhǔn)JSF版本相同的簽名。 當(dāng)將此接口與@ForClass一起使用時(shí),您還可以省略注釋上的值:

@Component @ForClass public class MyConverter implements Converter<MyCustomType> {... }

您還可以使用ConditionalForClass接口實(shí)現(xiàn)更復(fù)雜的“類”綁定(有關(guān)詳細(xì)信息,請參見JavaDoc )。

最后,還支持使用Spring MVC中的JSF轉(zhuǎn)換器(無論如何注冊)。 GenericFacesConverter是一個(gè)Spring ConditionalGenericConverter ,在注冊后會(huì)自動(dòng)委托給JSF。

例如,假設(shè)為MyCustomType注冊了MyConverter則以下MVC映射將起作用:

@RequestMapping("/example") public void example(@RequestParam MyCustomType value) {.... }

如果需要引用特定的JSF轉(zhuǎn)換器,也可以使用@FacesConverterId批注:

@RequestMapping("/example") public void example(@RequestParam @FacesConverterId("myOtherConverter") MyOtherCustomType value) {.... }

如果您想了解這一點(diǎn),請從展示應(yīng)用程序中查看ConverterExampleController 。

參考: 集成Spring和JavaServer Faces: Phil Webb博客博客中我們JCG合作伙伴 Phillip Webb的轉(zhuǎn)換器 。


翻譯自: https://www.javacodegeeks.com/2012/06/spring-jsf-integration-converters.html

jsf集成spring

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。