真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JSF和MVC該如何理解

這篇文章將為大家詳細(xì)講解有關(guān)JSF和MVC該如何理解,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

成都網(wǎng)站制作,成都營(yíng)銷(xiāo)型網(wǎng)站-創(chuàng)新互聯(lián)建站科技公司專(zhuān)注營(yíng)銷(xiāo)型網(wǎng)站建設(shè)及定制型網(wǎng)站開(kāi)發(fā)。致力為您建設(shè)最有價(jià)值的網(wǎng)站,服務(wù)熱線:028-86922220。

JSF是一種標(biāo)準(zhǔn)的 J2EE 表示層的技術(shù),其主旨是為了使 Java 開(kāi)發(fā)人員能夠快速的開(kāi)發(fā)基于 Java 的 Web 應(yīng)用程序。它不同于其它 Java 表示層技術(shù)的最大優(yōu)勢(shì)是其采用的組件模型,事件驅(qū)動(dòng)! 下面介紹JSF和MVC。

JSF和MVC

JSF 是幾年前學(xué)過(guò)的在 Java 平臺(tái)上改進(jìn) Web 開(kāi)發(fā)技術(shù)的課程的結(jié)果。這一趨勢(shì)開(kāi)始于 JSP 技術(shù),這一技術(shù)很好,只是很容易在 HTML(和類(lèi) HTML)頁(yè)面中混合 Java 代碼。下一次提高是 Model 1 架構(gòu),它讓開(kāi)發(fā)人員將大多數(shù)后端代碼放入 JavaBeans 組件中,然后用 標(biāo)簽將 JavaBeans 組件導(dǎo)入 Web 頁(yè)面。

這對(duì)于簡(jiǎn)單的 Web 應(yīng)用程序工作得很好,但是許多 Java 開(kāi)發(fā)人員不喜歡 JSP 技術(shù)這種與 C++ 特性(比如靜態(tài)包含)的協(xié)作。所以引入了 Model 2 架構(gòu)。

本質(zhì)上,Model 2 架構(gòu)是用于 Web 應(yīng)用程序的 MVC 的打了折扣的版本。在 Model 2 架構(gòu)中,控制器是由 Servlets 來(lái)表示的,而顯示則委派給 JSP 頁(yè)面。Struts 是一種簡(jiǎn)化的 Model 2 實(shí)現(xiàn),其中的 Actions 代替了 Servlets。在 Struts 中,應(yīng)用程序的控制器邏輯是與它的數(shù)據(jù)(由 ActionForms 表示)相分離的。對(duì)于 Struts 的主要抱怨是,它感覺(jué)上更像過(guò)程化的,而不像面向?qū)ο蟮摹?/p>

WebWork 和 Spring MVC 是另外兩個(gè) Model 2 架構(gòu),它們更加不像過(guò)程化的,在 Struts 的基礎(chǔ)上有所改進(jìn),但是它們?nèi)匀粵](méi)有 Struts 那樣被廣泛接受(或者沒(méi)有那么成熟,有人可能對(duì)此有爭(zhēng)議)。并且也不提供像 JSF 提供的那些組件模型。

關(guān)于大多數(shù) Model 2 框架的實(shí)際問(wèn)題是,事件模型太簡(jiǎn)單了(本質(zhì)上是一個(gè)非??s小的 MVC),這就給開(kāi)發(fā)人員留下了太多的工作。更豐富的事件模型使得創(chuàng)建大多數(shù)用戶期望的交互更加容易。像 JSP 技術(shù)一樣,大多數(shù) Model 2 也很容易利用 GUI 自定義標(biāo)簽來(lái)混合 HTML 布局和格式化,這些標(biāo)簽有點(diǎn)類(lèi)似于組件。而有些 Model 架構(gòu)(比如 Struts)出現(xiàn)分離行為與狀態(tài)的錯(cuò)誤,這讓許多 Java 開(kāi)發(fā)人員感覺(jué)自己是在進(jìn)行 COBOL 編程。

更豐富的 MVC 環(huán)境

JSF 提供一個(gè)組件模型和一個(gè)比大多數(shù) Model 2 實(shí)現(xiàn)更豐富的 MVC 環(huán)境。本質(zhì)上,JSF 比 Model 2 架構(gòu)更加接近于真正的 MVC 編程環(huán)境,盡管它仍然是一種無(wú)狀態(tài)的協(xié)議。JSF 也比 Model 2 架構(gòu)更方便構(gòu)建更加細(xì)致的事件驅(qū)動(dòng) GUI。盡管 JSF 給了您很多事件選項(xiàng)(菜單項(xiàng)選擇、按鈕單擊,等等),但是大多數(shù) Model 2 依賴于更加簡(jiǎn)單的“請(qǐng)求接受”。

JSF 的良好調(diào)優(yōu)的事件模型,允許您的應(yīng)用程序與 HTTP 細(xì)節(jié)的聯(lián)系更少,并簡(jiǎn)化了開(kāi)發(fā)。通過(guò)使得更加容易將表示和業(yè)務(wù)邏輯移出控制器,以及將業(yè)務(wù)邏輯移出 JSP 頁(yè)面,JSF 也在傳統(tǒng)的 Model 2 架構(gòu)上有了一些改進(jìn)。事實(shí)上,簡(jiǎn)單的控制器類(lèi)根本與 JSF 沒(méi)有聯(lián)系,這使得它們更加容易測(cè)試。與真正的 MVC 架構(gòu)不一樣,JSF 模型層不可能發(fā)出許多必須在多個(gè)視窗(viewport)中解決的事件;此外,我們?nèi)匀辉谔幚頍o(wú)狀態(tài)的協(xié)議,所以這是沒(méi)必要的。用于更改或更新視圖的系統(tǒng)事件幾乎總是用戶請(qǐng)求。

JSF和MVC實(shí)現(xiàn)細(xì)節(jié)

在 JSF和MVC實(shí)現(xiàn)中,mapping backing beans(映射支持 beans)在視圖和模型之間調(diào)停。因此,限制 backing beans 中的業(yè)務(wù)邏輯和持久性邏輯很重要。一個(gè)常見(jiàn)的替代方法是,將業(yè)務(wù)邏輯委派給應(yīng)用程序模型。在這種情況下,backing beans 也映射模型對(duì)象,其中視圖可以顯示它們。另一種選項(xiàng)是,將業(yè)務(wù)邏輯放在 Business 代表中,后者充當(dāng)模型。

與 JSP 技術(shù)不一樣,JSF 的視圖實(shí)現(xiàn)是一個(gè)有狀態(tài)的組件模型。JSF 視圖包含兩個(gè)部分:視圖根和 JSP 頁(yè)面。視圖根是 UI 組件集合,這些組件維護(hù) UI 的狀態(tài)。與 Swing 和 AWT 一樣,JSF 組件使用 Composite 設(shè)計(jì)模式來(lái)管理組件樹(shù)(簡(jiǎn)單地說(shuō),容器包含組件,容器也是一個(gè)組件)。JSP 頁(yè)面將 UI 組件綁定到 JSP 頁(yè)面,并允許您將字段組件綁定到 backing beans 的屬性(或者屬性的屬性),以及將按鈕綁定到事件處理器和操作方法。

下面是一個(gè)從 MVC 角度來(lái)看的示例應(yīng)用程序。

示例應(yīng)用程序

1.問(wèn)題描述:該例是一個(gè)簡(jiǎn)單的 計(jì)算器 應(yīng)用程序。

創(chuàng)建該應(yīng)用程序的目標(biāo)是向終端用戶呈現(xiàn)一個(gè)頁(yè)面,讓他/她輸入兩個(gè)數(shù)值。因此,該頁(yè)面具有兩個(gè)文本字段、兩個(gè)標(biāo)簽、兩個(gè)錯(cuò)誤消息位置和一個(gè) Submit 按鈕。文本字段用于輸入數(shù)值。標(biāo)簽用于標(biāo)注字段。錯(cuò)誤消息位置用于顯示針對(duì)文本字段的驗(yàn)證或數(shù)據(jù)轉(zhuǎn)換錯(cuò)誤消息。

2.分析:

1)視圖:存在二個(gè) JSP 頁(yè)面:

  • calculator.jsp,它呈現(xiàn)前面提到的 GUI;

  • results.jsp,它顯示結(jié)果。

2)控制器(充當(dāng)從模型到視圖的粘合劑):一個(gè)叫做 CalculatorController 的托管 bean 充當(dāng) calculator.jsp 和 results.jsp 的 backing bean。

3)模型:Calculator類(lèi),負(fù)責(zé)實(shí)現(xiàn)兩個(gè)數(shù)的加、減、乘、除的業(yè)務(wù)邏輯。

3.示例應(yīng)用程序的MVC 視圖

JSF和MVC該如何理解

關(guān)于JSF和MVC該如何理解就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


新聞名稱(chēng):JSF和MVC該如何理解
文章網(wǎng)址:http://weahome.cn/article/ipgdie.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部