成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳細介紹JSF和MVC

開發 后端 前端
JSF是一種用于構建 Web 應用程序的新標準 Java 框架。本文介紹的是JSF和MVC,希望對你有幫助,一起來看吧!

JSF是一種標準的 J2EE 表示層的技術,其主旨是為了使 Java 開發人員能夠快速的開發基于 Java 的 Web 應用程序。它不同于其它 Java 表示層技術的***優勢是其采用的組件模型,事件驅動! 下面介紹JSF和MVC

JSF和MVC

JSF 是幾年前學過的在 Java 平臺上改進 Web 開發技術的課程的結果。這一趨勢開始于 JSP 技術,這一技術很好,只是很容易在 HTML(和類 HTML)頁面中混合 Java 代碼。下一次提高是 Model 1 架構,它讓開發人員將大多數后端代碼放入 JavaBeans 組件中,然后用 標簽將 JavaBeans 組件導入 Web 頁面。

這對于簡單的 Web 應用程序工作得很好,但是許多 Java 開發人員不喜歡 JSP 技術這種與 C++ 特性(比如靜態包含)的協作。所以引入了 Model 2 架構。

本質上,Model 2 架構是用于 Web 應用程序的 MVC 的打了折扣的版本。在 Model 2 架構中,控制器是由 Servlets 來表示的,而顯示則委派給 JSP 頁面。Struts 是一種簡化的 Model 2 實現,其中的 Actions 代替了 Servlets。在 Struts 中,應用程序的控制器邏輯是與它的數據(由 ActionForms 表示)相分離的。對于 Struts 的主要抱怨是,它感覺上更像過程化的,而不像面向對象的。

WebWork 和 Spring MVC 是另外兩個 Model 2 架構,它們更加不像過程化的,在 Struts 的基礎上有所改進,但是它們仍然沒有 Struts 那樣被廣泛接受(或者沒有那么成熟,有人可能對此有爭議)。并且也不提供像 JSF 提供的那些組件模型。

關于大多數 Model 2 框架的實際問題是,事件模型太簡單了(本質上是一個非常縮小的 MVC),這就給開發人員留下了太多的工作。更豐富的事件模型使得創建大多數用戶期望的交互更加容易。像 JSP 技術一樣,大多數 Model 2 也很容易利用 GUI 自定義標簽來混合 HTML 布局和格式化,這些標簽有點類似于組件。而有些 Model 架構(比如 Struts)出現分離行為與狀態的錯誤,這讓許多 Java 開發人員感覺自己是在進行 COBOL 編程。

更豐富的 MVC 環境

JSF 提供一個組件模型和一個比大多數 Model 2 實現更豐富的 MVC 環境。本質上,JSF 比 Model 2 架構更加接近于真正的 MVC 編程環境,盡管它仍然是一種無狀態的協議。JSF 也比 Model 2 架構更方便構建更加細致的事件驅動 GUI。盡管 JSF 給了您很多事件選項(菜單項選擇、按鈕單擊,等等),但是大多數 Model 2 依賴于更加簡單的“請求接受”。

JSF 的良好調優的事件模型,允許您的應用程序與 HTTP 細節的聯系更少,并簡化了開發。通過使得更加容易將表示和業務邏輯移出控制器,以及將業務邏輯移出 JSP 頁面,JSF 也在傳統的 Model 2 架構上有了一些改進。事實上,簡單的控制器類根本與 JSF 沒有聯系,這使得它們更加容易測試。與真正的 MVC 架構不一樣,JSF 模型層不可能發出許多必須在多個視窗(viewport)中解決的事件;此外,我們仍然在處理無狀態的協議,所以這是沒必要的。用于更改或更新視圖的系統事件幾乎總是用戶請求。

JSF和MVC實現細節

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

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

下面是一個從 MVC 角度來看的示例應用程序。

示例應用程序

1.問題描述:該例是一個簡單的 計算器 應用程序。

創建該應用程序的目標是向終端用戶呈現一個頁面,讓他/她輸入兩個數值。因此,該頁面具有兩個文本字段、兩個標簽、兩個錯誤消息位置和一個 Submit 按鈕。文本字段用于輸入數值。標簽用于標注字段。錯誤消息位置用于顯示針對文本字段的驗證或數據轉換錯誤消息。

2.分析:

1)視圖:存在二個 JSP 頁面:

  • calculator.jsp,它呈現前面提到的 GUI;
  • results.jsp,它顯示結果。

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

3)模型:Calculator類,負責實現兩個數的加、減、乘、除的業務邏輯。

3.示例應用程序的MVC 視圖

應用程序的MVC 視圖

通過本文的介紹,希望對你有幫助。

【編輯推薦】

  1. 揭開Java EE開發框架之謎
  2. JAVA編程經驗匯總(一)
  3. 談JAVA靜態載入的兩種方式
  4. 分享Java開發 基礎三十條
  5. 詳細介紹Java語言中的IO系統
責任編輯:于鐵 來源: 互聯網
相關推薦

2009-06-24 13:50:29

JSF和MVC

2009-06-29 14:30:27

JSF技術

2009-06-26 11:24:15

Seam Remoti

2011-07-08 17:26:38

JSFStruts

2009-06-24 17:43:24

Struts和JSF

2009-06-22 14:13:08

JSF入門

2009-06-23 13:01:04

JSF應用

2009-06-23 13:55:17

JSF標簽

2009-06-24 10:47:55

JSF生命周期

2011-07-21 17:11:09

AjaxJSF

2009-06-26 13:48:57

G4JSFGWTJSF

2009-06-22 14:22:41

JSF和Tapestr

2009-06-23 16:29:51

JSFSpring MVCStruts 2

2009-09-02 09:44:01

JSP和JavaBea

2009-08-03 18:49:17

C#和Java

2009-07-03 11:21:43

Servlet和JSPJSP路徑

2009-06-22 16:24:33

JSF框架中使用的設計

2009-06-24 16:42:17

JSF和Facelet

2009-06-23 13:21:26

JSF和Spring

2009-06-24 16:16:30

JSF和Tapestr
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久蜜桃 | 免费精品 | 97伊人| 成人福利影院 | 亚洲第一成人影院 | 国产成人网 | 日韩一二三区视频 | 999国产视频 | 国产日韩欧美 | 日韩视频一区在线观看 | 一区二区在线不卡 | 日本一二三区在线观看 | 91精品国产综合久久久久久丝袜 | 日韩中文一区二区三区 | 中文一区二区 | 在线一区二区三区 | 本道综合精品 | 亚洲精品99999 | 国产综合在线视频 | 日本超碰 | 国产乱码一二三区精品 | 日本三级在线 | 国产精品一区二区三区在线 | 国产成人在线视频 | 亚洲综合网站 | 一级大黄色片 | 激情免费视频 | 在线观看视频91 | 欧美一级欧美三级在线观看 | 99精品国产一区二区青青牛奶 | 日韩在线精品 | 国产亚洲精品久久午夜玫瑰园 | 91亚洲精华国产 | 久久新 | 国产在线一区二区三区 | 中文字幕免费在线 | 999精品视频在线观看 | 久久久久午夜 | 亚洲欧美激情精品一区二区 | 91视频在线观看 | 青青草社区 |