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

歡迎訪問 生活随笔!

生活随笔

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

javascript

Spring和JSF集成:MVC螺母和螺栓

發(fā)布時間:2023/12/3 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring和JSF集成:MVC螺母和螺栓 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
過去,我曾嘗試將JSF與Spring MVC集成在一起,盡管我的第一次嘗試成功了,但這遠非理想。 這次,我決定做出一些關鍵決定來幫助我集中精力:
  • 向后兼容。 支持JSF 1.2涉及的工作太多,而Spring 3.1中出現(xiàn)了太多的好東西,可以忽略。
  • MVC注釋為王。 @RequestMapping似乎是大多數(shù)人的首選方法。 讓我們僅支持此功能,并將所有自定義注釋保持在最低限度。
  • 減少依賴性。 重用東西很好,但這是一個集成項目,因此集成越少越好。

考慮到這一點,我決定以Web Flow的org.springframework.faces.mvc.JsfView類為靈感。 該類非常好用,因為它只處理MVC的View ,而Model和Controller完全保留在Spring領域中。 JsfView的唯一問題是缺少回發(fā)支持。 我們需要以某種方式檢測對視圖的初始請求和任何后續(xù)的JSF回發(fā)之間的差異。

由于Spring MVC具有非常靈活的架構,因此這是完全可能的。 我們可以在DispatcherServlet注冊多個HandlerMapping和HandlerAdapter bean。 為了支持JSF,我們需要在此鏈中的某個較高層來檢測和處理回發(fā),而將不是回發(fā)的所有內容以常規(guī)方式處理。 這是事件的一般順序:

user dispatcher @controller| /some/request | ||-------------------->| maps to || |------------->| creates| | |------------> FacesView| | (/pages/file.xhtml)| | render || |-------------------------------->|| | [Delegate to JSF]| response |<--------------------------------||<--------------------|| || || /some/request || (postback) ||-------------------->| postback handler| |--------->|| | [Delegate to JSF]| response |<---------||<--------------------| || | |

回發(fā)處理程序有幾個有趣的問題要處理。 1)我們怎么知道我們是回發(fā)。 2)我們如何知道要還原的視圖。 顯然,回發(fā)將是HTTP POST操作,但是我們不能盲目地假設所有POST都是JSF回發(fā)。 我們還需要知道要還原的XHTML文件,但是該文件基于最后一個請求的@Controller做出的決定。
這兩個問題的答案是編寫我們自己的JSF ResponseStateManager 。 ResponseStateManager是JSF狀態(tài)管理基礎結構的一部分,并負責讀取和寫入組件狀態(tài)。 通常,JSF會將狀態(tài)數(shù)據(jù)保存在HTTP會話中,并在頁面內寫入一個隱藏的表單字段,以便以后可以還原。 使用這種機制,我們可以為MVC編寫一個附加字段,該字段的存在使我們知道我們有一個回發(fā),而且該值還將使我們知道要還原的XHTML文件。

有了回發(fā)處理程序,我們現(xiàn)在可以充分利用Spring和JSF的優(yōu)勢。 我們可以使用@RequestMapping批注來構建富有表現(xiàn)力的URL,并使用JSF組件來呈現(xiàn)復雜的網(wǎng)頁。 如果愿意,我們甚至可以基于完全不同的技術為同一URL返回不同的視圖(例如,通過檢查HTTP標頭,我們可能決定返回JSF頁面或XML文檔)。

如果要查看回發(fā)處理程序代碼,可在此處獲得 。 通常是將代碼庫移動的注意事項。

參考: 集成Spring和JavaServer Faces: JCG合作伙伴 Phillip Webb的 MVC 細節(jié) ? 在Phil Webb的Blog上 。


翻譯自: https://www.javacodegeeks.com/2012/03/spring-jsf-integration-mvc-nuts-and.html

總結

以上是生活随笔為你收集整理的Spring和JSF集成:MVC螺母和螺栓的全部內容,希望文章能夠幫你解決所遇到的問題。

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