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

歡迎訪問 生活随笔!

生活随笔

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

javascript

《Java EE 7精粹》—— 第3章 JSF 3.1 Facelets

發布時間:2025/3/8 javascript 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Java EE 7精粹》—— 第3章 JSF 3.1 Facelets 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本節書摘來異步社區《Java EE 7精粹》一書中的第2章,第2.1節,作者:【美】Arun Gupta,更多章節內容可以訪問云棲社區“異步社區”公眾號查看。

第3章 JSF

JSF是基于Java的Web應用程序開發的服務器端用戶界面(UI)框架。使用JSF可以實現:

  • 使用遵循模型-視圖-控制器(MVC)設計模式的可重用的UI組件集合來創建網頁。
  • 綁定組件到服務器端模型,允許UI與應用程序數據雙向移動。
  • 處理UI事件響應和模型交互中的頁面導航。
  • 管理跨服務器請求的UI組件狀態。
  • 提供從客戶端生成的事件到服務器端應用程序代碼的簡單模型。
  • 輕松地構建和重用自定義UI組件。

JSF應用程序包括:

  • 置于UI組件的布局中的一組網頁。
  • 一組托管的Bean,包括綁定組件到服務器端模型的Bean(通常是CDI Bean)和作為控制器的Bean(通常是EJB或CDI Bean)。
  • 可選的部署描述符文件web.xml。
  • 可選的配置文件faces -config.xml。
  • 可選的一組自定義對象,包括應用程序開發人員創建的轉換器和監聽器。

3.1 Facelets

Facelets是JSF的視圖聲明語言(又名視圖處理器)。他是JSP的替代者,JSP現在只保留了向后兼容性。在JSF2規范中引入的新功能,如復合組件和Ajax,只會暴露給Facelets的使用者。Facelets的主要優點包括一個功能強大的模板系統,可重用和易于開發,更好的錯誤報告(包括行號),以及對設計人員友好。

Facelets頁面使用XHTML1.0和層疊樣式表(CSS)來編寫。XHTML1.0的文檔是遵循XML1.0規則書寫的HTML4文檔。頁面必須符合XHTML-1.0-Transitional DTD的要求。

使用XHTML定義的一個簡單的Facelets頁面如下:


在這段代碼中,XML聲明之后是文檔類型定義(DTD)。頁面的根元素是html,其中聲明了命名空間http://www.w3.org/1999/xhtml。聲明XML命名空間是為了在Web頁面中使用標簽庫,Facelets的html標簽(那些以h開頭的標簽)和普通的html標簽用于添加組件。

表3-1給出了Facelets支持的標準標簽庫集合。


按照慣例,使用XHTML創建的Web頁面使用.xhtml作為擴展名。

Facelets提供表達式語言(EL)集成,這使得后臺Bean可以和前臺UI之間實現雙向的數據綁定:


在這段代碼中,EL表達式#{name.value}代表請求作用域的CDI Bean的value字段的值:


重要的是要為這個CDI Bean添加@Named注解,以使其可以依賴注入到EL表達式中。

在JSF2.2中,@javax.faces.bean.ManagedBean注解是未來的版本中不建議使用的,所以強烈建議使用@Named來代替。

JSF2.2還引入了新的CDI作用域:javax.faces.view.ViewScoped。在一個Bean上指定該注解,可以將這個Bean與當前視圖綁定。javax.faces.bean.ViewScoped注解是未來的版本中不建議使用的,所以強烈建議使用新引入的作用域。

同樣地,一個EJB可以在EL表達式注入:


這是一個無狀態的會話Bean,包含一個返回客戶名稱列表的業務方法。@Named標記它可以依賴注入到EL表達式中,可以在Facelets的EL表達式中使用:


在這段代碼中,客戶名稱列表的返回值顯示在一個表格組件當中。請注意getCustomerNames方法是如何作為一個屬性用在EL表達式中的。

Facelets還提供了編譯期EL表達式驗證。

此外,Facelets提供了一個功能強大的模板系統,使我們可以在一個Web應用程序的多個頁面之間提供一致的界面外觀。基礎頁面稱為模板,是通過Facelets的模板標簽創建的。這個頁面為Web頁面定義了一個缺省頁面骨架,包括內容占位符,會在將來的頁面中使用模板來添肉。模板客戶端頁面使用這個模板,為模板骨架中定義的占位符提供具體的肉(實際的內容)。

表3-2列出了一些在模板和模板客戶端頁面中使用的通用標簽。


模板頁面的外觀示例如下:


在這段代碼中,在頁面中使用

和CSS(在這里沒有顯示)定義結構。ui:insert定義了被模板客戶端頁面替換的內容。

模板客戶端頁面示例如下:


在這段代碼中,名為top和bottom的ui:insert沒有定義,那么這些部分使用模板頁面的ui:define元素的名稱匹配模板中的ui:insert元素,因此模板的這部分內容被替換。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的《Java EE 7精粹》—— 第3章 JSF 3.1 Facelets的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲欧美在线播放 | 91av久久 | 美女露出粉嫩尿囗让男人桶 | 国产亚洲欧美一区二区 | 黄色一级黄色片 | 成人网在线视频 | 亚色av | 九九久久国产 | 毛片免 | 国产日韩欧美91 | mm1313亚洲国产精品美女 | 什么网站可以看毛片 | 日本高清黄色 | 日本性视频网站 | 久久香蕉av| 大片视频免费观看视频 | 人人妻人人爽人人澡人人精品 | 三女警花合力承欢猎艳都市h | 一区在线观看 | 春闺艳妇(h)高h产乳 | 国产精品18久久久久久无码 | 亚洲91网站 | 欧美日韩不卡 | 日本激情视频网站 | 日韩欧美123| www.婷婷.com | 欧美日本中文字幕 | 爱福利视频一区 | 伊人精品久久 | 精品国产户外野外 | 特级毛片爽www免费版 | 久久久九九九热 | 人人妻人人澡人人爽精品欧美一区 | 麻豆视频网址 | 国产一级性生活 | 精品国产无码在线观看 | 色婷婷午夜 | 国内自拍一区 | 亚洲视频中文 | 欧美日韩一区二区综合 | 欧美一区二区视频在线 | 天堂在线观看中文字幕 | 日韩亚州| 五十路毛片 | 天天干人人 | 亚洲美女中文字幕 | 成年网站在线 | 日韩欧美在线免费观看 | 亚州男人天堂 | 成年人午夜网站 | 七七久久| 无码人妻精品一区二区 | 久久久久99精品成人片 | 日女人网站 | 国产精品三级电影 | 91视频播放器 | 色婷婷麻豆 | 天天操操| 国产精品2 | 57pao成人国产永久免费视频 | 国产美女91 | 中文字幕高清在线免费播放 | 亚洲av无码一区二区二三区 | 一级绝黄| 理论毛片| 第一宅男av导航入口 | 97人妻精品一区二区三区免 | 国产精品4区| 97免费观看视频 | 国产福利在线免费观看 | 色福利在线 | 懂色aⅴ一区二区三区免费 国产精品99在线观看 | 亚洲一区二区三区四区av | 亚洲精品欧美在线 | 黄色在线免费视频 | 成人自拍视频网站 | 中文字幕理论片 | 久久特黄 | 夜夜精品视频 | 国产成人一区二区三区影院在线 | aaaa黄色 | 亚洲综合干| 浪漫樱花在线观看高清动漫 | 在线观看亚洲一区二区 | 中文无码熟妇人妻av在线 | 久久久无码人妻精品一区 | 三级麻豆 | 青青草久久伊人 | 福利电影一区二区 | 亚洲日本一区二区三区 | 日日操夜夜干 | 人妻熟女一区二区aⅴ水野 91在线观看视频 | 欧美男女性生活视频 | 久久久久久久久久久久久久免费看 | 性做爰视频免费播放大全 | 久久综合久久久久 | 日韩黄色三级视频 | 91精品一区 | 日产精品久久久久久久 |