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

歡迎訪問 生活随笔!

生活随笔

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

javascript

web.xml.jsf_面向初学者的JSF 2.0教程

發布時間:2023/12/3 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 web.xml.jsf_面向初学者的JSF 2.0教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

web.xml.jsf

1.什么是JSF?

JSF是Java Server Faces的首字母縮寫。 它是一種服務器端處理技術,它允許將服務器端代碼嵌入到網頁中。 由于可以將服務器端處理和渲染代碼嵌入網頁本身,因此使項目的整體編碼更加簡單。 減少文件總數和大小。 JSF包含2個主要組件:

  • Java Facets :服務器端文件,用作控制器,將客戶端請求重定向到正確的JSF網頁。
  • JSF標簽:除了允許將服務器端腳本編寫到網頁中之外,JSF還提供了定制標簽來輕松執行某些操作,例如迭代或條件檢查。
  • 這些組件共同構成了MVC的視圖和控制器。

    2. JSF 2.0 –有何不同?

    JSF 2.0和更高版本是其較早版本JSF 1.x的主要升級。 隨著JSF 2.0版本的發布,基于JSF的項目的編碼風格發生了變化。 使用JSF 2.0,不需要在單獨的配置文件(如舊版本)中聲明不同的項目。 JSF 2.0允許在faces-config.xml文件中聲明幾乎所有內容。 而且,JSF 2.0添加了使用注釋定義導航,托管或CDI Bean的功能。 當然,這可以減少設置項目結構所需的配置量。

    以下各節將使用一個簡單的Hello World示例提供有關JSF代碼如何工作的基本理解,并在以后轉向JSF 2.0功能和標簽。

    3.設置基于JSF 2.0的動態Web項目

    3.1先決條件

    以下示例是使用以下工具集創建的:

    • Maven的v4.0
    • Eclipse Java EE IDE
    • Apache Tomcat 9.0
    • JDK v7或更高版本
    • JSF 2.0

    為了設置用于執行JSF 2.0相關任務的項目,請按照以下所示的步驟從創建Maven WebApp項目開始。

  • 在Eclipse中,導航到File-> New-> Maven Project
  • 選擇工作空間或選擇使用默認工作空間,然后單擊下一步

    具有默認工作區的新Maven項目

  • 在“原型”選擇中,選擇“ maven-archetype-webapp”
  • 提供您選擇的組ID和工件ID,然后繼續
  • 這些步驟將創建一個帶有默認index.jsp文件的簡單Web項目。 創建項目后,將Apache Tomcat服務器綁定到該項目。 完成此配置后,通過右鍵單擊文件index.jsp并導航至Run as- > Run on Server來測試項目的運行 。 選擇Apache Tomcat服務器,然后單擊完成。

    如果一切都配置正確,則將顯示類似于以下所示的網頁。

    索引頁

    下一步是將JSF 2.0的Maven依賴項添加到項目中。 在pom.xml中添加以下依賴項以啟用對JSF 2.0功能的支持。

    pom.xml

    <dependency><groupId>com.sun.faces</groupId><artifactId>jsf-api</artifactId><version>2.1.7</version></dependency><dependency><groupId>com.sun.faces</groupId><artifactId>jsf-impl</artifactId><version>2.1.7</version></dependency><!-- Required for JSTL tags to be used in JSF --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency>

    一旦將依賴項添加到pom.xml中,請保存項目并出一些時間來下載依賴項。

    4.從托管豆開始

    JSF 2.0的主要優點之一是,它允許使用注釋來定義托管bean。 在本節中,我們將介紹如何創建和使用簡單的托管Bean,以及稍后使用JSTL標簽進行稍微復雜的操作。

    4.1使用基本EL創建一個簡單的xHTML頁面

    EL是表達語言的縮寫。 使用JSF 2.0,可以直接訪問Bean中可用的變量或使用EL編寫簡單的表達式。 下面的頁面包含一個簡單的EL #{'Coding'} ,它產生一個簡單的字符串值Coding 。

    SayHello.xhtml

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:h="http://java.sun.com/jsf/html"><head><title>JSF 2.0 Say Hello</title> </head><body><p>Hey There! My hobby is #{'Coding'}</p></body> </html>

    在WEB-INF文件夾中創建上述文件之前,需要完成某些配置。

  • 通過右鍵單擊該項目并導航到“ 屬性”->“ Project Facets” ,然后選中“ JavaServer Faces ”復選框,為Java Server Faces配置項目
  • 確定JSF模塊是2.0,而不是1.2。 如果將其設置為2.0時出現問題,請從項目中的.settings文件夾中打開文件org.eclipse.wst.common.project.facet.core .xml并添加以下行 <installed facet="jst.jsf" version="2.0"/>
  • 將Web模塊版本設置為3.0,以使JSF 2.0順利運行。 可以通過將facet="jst.web"版本修改為3.0來完成。
  • 更改完成后刷新項目。
  • 右鍵單擊該項目,然后導航到Maven-> Update Maven Project。
  • 現在,該項目可以運行了。 項目結構應如下圖所示:

    Maven Web App項目結構

    現在,只需右鍵單擊文件SayHello.xhtml并導航至“運行方式->在服務器上運行”,選擇Apache Tomcat服務器,然后單擊“完成”以運行第一個xHTML頁面。

    請注意,這里有2個不同的JSF標簽庫導入到頁面中以支持JSF標簽。 這些標記使您能夠在HTML頁面中編寫邏輯代碼塊,并允許使用預樣式化的JSF標記替換標準HTML標記。 執行頁面時,頁面顯示以下輸出。

    SayHello.xhtml的輸出

    4.2創建第一個托管Bean

    下一步,讓我們將用戶的愛好作為托管Bean中的變量,并嘗試使用托管Bean進行填充。 使用下面的代碼創建一個托管bean。

    HobbiesBean.java

    package jsftutorial;import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped;@ManagedBean @SessionScoped public class HobbiesBean {private String hobby = "Java Coding";public String getHobby() {return hobby;}public void setHobby(String hobby) {this.hobby = hobby;}}

    請注意,這里使用了兩個注釋。

  • ManagedBean :此批注用于通過此簡單批注定義托管bean。 托管Bean與頁面緊密綁定,可用于從頁面獲取輸入值或將變量值簡單地放在輸出文本上。
  • SessionScoped :此批注用于聲明bean的范圍。 bean的范圍決定了是否每次都會創建bean的新實例。
  • 讓我們嘗試在之前創建的xhtml頁面上顯示變量hobby的值。 為此,請修改SayHello.xhtml文件,如下所示:

    SayHello.xhtml

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:h="http://java.sun.com/jsf/html"><head><title>JSF 2.0 Say Hello</title> </head><body><p>Hey There! My hobby is #{hobbiesBean.hobby}</p></body> </html>

    實施上述代碼后,請重新啟動服務器并檢查頁面。 除愛好文本外,輸出保持類似。 輸出現在是Hey There! 我的愛好是Java編碼 。 這里有兩點很重要。

  • 上面文件中使用的名為bean的是hobbiesBean 。 如果仔細注意,則Bean名稱類似于類名稱,除了第一個字符小寫。 JSF 2.0標準通過將第一個字符轉換為小寫并保留其余的類名稱來自動定義Bean名稱。
  • 變量hobby是一個私有變量,在Bean中具有getter和setter方法。 服務器使用getter獲取變量的值。 因此,如果需要,開發人員可以自由地操縱吸氣劑中的輸出。
  • 4.3使用自定義別名命名bean

    上面的示例根據JSF標準使用bean的默認名稱。 但是,有時開發人員可能希望使用自定義bean名稱來更好地理解。 例如,對于Employee類,開發人員可能更喜歡bean名稱為user 。 對于此類情況,注釋@ManagedBean具有屬性名稱

    此屬性允許開發人員使用以下語法來提供自定義名稱。 放置注釋的代碼行中的以下修改將把HobbiesBean重命名為myHobbies 。

    @ManagedBean(name="myHobbies")

    在Bean文件中完成此更改后,如下所示修改SayHello.xhtml文件。

    SayHello.xhtml

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:h="http://java.sun.com/jsf/html"><head><title>JSF 2.0 Say Hello</title> </head><body><p>Hey There! My hobby is #{myHobbies.hobby}</p></body> </html>

    盡管Bean的名稱發生了變化,但執行此代碼后的輸出仍保持不變。

    4.4在托管Bean中注入Bean依賴項

    依賴注入是在面向對象的環境中進行管理的重要方面。 讓我們考慮下面的User類:

    User.java

    package jsftutorial;import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped;@ManagedBean @SessionScoped public class User {private HobbiesBean hobby;private String name="Java Coder";public HobbiesBean getHobby() {return hobby;}public void setHobby(HobbiesBean hobby) {this.hobby = hobby;}public String getName() {return name;}public void setName(String name) {this.name = name;} }

    在這里,我們需要將HobbiesBean類的對象注入到User類中。 為了將其作為托管bean依賴項注入,JSF 2.0支持注釋@ManagedProperty(value="#{myHobbies}") 。 值屬性應根據相應類的bean名稱進行分配。 提取用戶對象時,此批注將自動注入依賴的bean。 可以通過如下創建一個新文件來驗證。

    injectiontest.xhtml

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:h="http://java.sun.com/jsf/html"><head><title>JSF 2.0 Say Hello</title> </head><body><p>Hey There! I am #{user.name}. My hobby is #{user.hobby.hobby}</p></body> </html>

    現在,輸出顯示Hey There! I am Java Coder. My hobby is Coding Hey There! I am Java Coder. My hobby is Coding Hey There! I am Java Coder. My hobby is Coding 。 以這種方式,可以很容易地注入任何數量的bean,而不必初始化bean。

    4.5 JSF 2.0標簽

    JSF 2.0標準定義了許多標簽,用于以簡單的方式執行高級操作。 在上面創建的xhtml文件中可以注意到,已經導入了兩個XML名稱空間。

    xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"

    前綴為h的名稱空間可替換常規html標簽。 下面提供了與它們的實際HTML標簽相關的最常用標簽的列表。

    HTML標簽 JSF h標簽
    <label> <h:outputText>
    <input type="text"> <h:inputText>
    <input type="hidden"> <h:inputHidden>
    <input type="password"> <h:inputSecret>
    <input type="checkbox"> <h:selectBooleanCheckbox>
    <input type="radio"> <h:selectOneRadio>
    <textarea> <h:inputTextArea>
    <select> <h:selectOneListbox>
    <select multiple> <h:selectManyListbox>
    <img> <h:graphicImage>

    除了這些之外,還可以在此處找到其他眾多h標簽的詳細信息。

    前綴f的命名空間在這里很重要。 這些標簽提供了某些特殊功能,例如驗證組件,聲明上述h標簽的項目以及遍歷列表,數組或映射之類的對象并創建數據表。 下面將討論一些基本的f標簽及其實現。

    actionlistener.xhtml

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:h="http://java.sun.com/jsf/html"> <body> <h:form> <h:commandButton action="result" value="Submit"><f:setPropertyActionListener target="#{user.name}" value="Java Code Geeks" /> </h:commandButton> </h:form> </body> </html>

    使用標簽f:setPropertyActionListener ,可以在提交表單時設置特定屬性的值。 上面的代碼設置了單擊命令按鈕時user Bean的屬性name的值。 該值將在操作頁面result.xhtml可用 。 輸出如下所示。

    f:setPropertyActionListener的輸出

    考慮如下所示的類Bill 。

    比爾

    package jsftutorial;import java.util.Date;import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped;@ManagedBean @SessionScoped public class Bill {private double amount = 34.8; private Date billDate = new Date();public double getAmount() {return amount;}public void setAmount(double amount) {this.amount = amount;}public Date getBillDate() {return billDate;}public void setBillDate(Date billDate) {this.billDate = billDate;} }

    討論的下一個標簽允許控制十進制輸入中的小數位數。 創建xhtml文件,如下所示。

    convert.xhtml

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:h="http://java.sun.com/jsf/html"> <body> <h:outputText value="#{bill.amount}" ><f:convertNumber minFractionDigits="2" /> </h:outputText></body> </html>

    這是一個非常有用的標記,當您希望將數字截斷到特定的小數位或將數字強制具有一定的小數位數時,此標記非常有用。 這個標簽的使用非常簡單。
    minFractionDigits要求最小的十進制精度數。 例如,如果輸入的輸入是34.8 (與Bill類相同),則標記將自動將值轉換為34.80 ,如下圖所示。

    將數字轉換為至少2個小數

    同樣,也可以以模式形式指定小數。 例如:

    convert.xhtml

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:h="http://java.sun.com/jsf/html"> <body> <h:outputText value="#{bill.amount}" ><f:convertNumber pattern="#00.00" /> </h:outputText></body> </html>

    此模式將允許最多2位數字和2位小數。 這樣就無需在鍵盤輸入或焦點對準時添加自定義腳本。 輸出仍然類似于上面顯示的輸出。

    convert.xhtml

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:h="http://java.sun.com/jsf/html"> <body> <h:outputText value="#{bill.amount}" ><f:convertNumber pattern="#00.00" /> </h:outputText><br> <h:outputText value="#{bill.billDate}" ><f:convertDateTime pattern="d-M-yyyy"/> </h:outputText></body> </html>

    當我們需要以特定格式顯示日期和時間時,此屬性會派上用場。 標簽可以動態接受模式,并以給定模式顯示提供的java.util.Date變量。 bill.billDate是此處的java.util.Date 。 f標記將日期轉換為java.text.SimpleDateFormat類指定的dM-yyyy格式。 輸出將如下所示。

    將f:convertDateTime轉換為dM-yyyy格式

    有關更多標簽,您可以在此處進行探索。

    5.結論

    本文概括了JSF 2.0大部分必要功能的要點。 它從設置過程開始,繼續進行為托管bean使用注釋的主要功能。 所有主要功能(例如注釋, h標簽和f標簽)均已包含必要的詳細信息。 總是有更多參考。 其他有用的鏈接可以在下面的參考資料中找到。

    6.參考

    • 有關f標簽的更多信息
    • 關于h標簽的更多信息
    • c標簽用于條件分支和循環

    7.下載Eclipse項目

    這是討論使用JSF 2.0的示例。

    下載
    您可以在此處下載此示例的完整源代碼: jsftutorial-1.zip

    翻譯自: https://www.javacodegeeks.com/2018/03/jsf-2-0-tutorial-for-beginners.html

    web.xml.jsf

    總結

    以上是生活随笔為你收集整理的web.xml.jsf_面向初学者的JSF 2.0教程的全部內容,希望文章能夠幫你解決所遇到的問題。

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