文章出處

前言:

JSF 2.X因為種種原因(我個人覺得主要是因為推出太晚),再加上EJB2之前的設計過于復雜,引起很多開發人員對官方解決方案的反感,即使EJB3后來做了大量改進,國內也很少有人對EJB3感興趣,目前國內主流開發架構大多采用SSH,很少有JSF 2.x + EJB 3.x的應用,但從我個人感覺來看,特別是對于從.NET轉型到JAVA的web程序員而言,JSF中的很多概念其實跟.NET很接近,國外已經有越來越多的項目在采用JSF + EJB3做為技術選型,下面將詳細介紹JSF的開發環境搭建.

 

一、創建一個Dynamic Web Project

eclipse中新建一個Dynamic Web Project,參考下圖

 輸入項目名稱(本文中為jsf-web),Target runtime這里我們選擇None,Configuration這里選擇最小配置Minimal Configuration,參考下圖:

現在越來越多的java項目采用maven來管理了,為了方便后面轉成maven項目,這里對源代碼目錄參考maven的約定,做下調整,參考下圖:

注:對maven目錄結構約定不清楚的朋友,建議先看這里

接下來,指定web站點內容目錄(即:用來存放"頁面\樣式\腳本"的目錄),這里輸入webapp

然后點擊Finish,完成項目創建

 

二、將項目轉換成maven項目

剛才創建的項目,默認并不是maven項目,可參考下圖轉換成maven項目

項目右擊 -> Configure -> Convert to Maven Project

轉換過程中,會提示指定Group Id/Version這些maven關鍵信息,可參考下圖自行調整:

 

三、配置pom.xml中的依賴項

JSF只是官方的一個規范,并不是具體的產品,針對這個規范,各廠商都有自己的實現(即: 官方定義了一組interface,但是未給出具體的接口實現,然后各大廠商提供了各家的實現),比如: Apache的myFacesoracle/sun公司的Mojarra,以及Jboss的richfaces,這三種實現從編寫代碼的角度看,并無太大差別,但部署在不同的web server上,配置需要做相關的調整,個人建議:

如果要部署在weblogic上,建議采用oracle的mojarra

如果要部署在jboss上,建議采用jboss的richfaces

 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 2     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 3     <modelVersion>4.0.0</modelVersion>
 4     <groupId>yjmyzz</groupId>
 5     <artifactId>jsf-web</artifactId>
 6     <version>1.0</version>
 7     <packaging>war</packaging>
 8 
 9 
10     <dependencies>
11 
12         <!-- 如果打算部署在jboss上,建議下面這個 -->
13 <!--         <dependency>
14             <groupId>org.jboss.spec.javax.faces</groupId>
15             <artifactId>jboss-jsf-api_2.1_spec</artifactId>
16             <version>2.1.19.1.Final-redhat-1</version>
17             <scope>compile</scope>
18         </dependency> -->
19 
20         <!-- 如果打算部署在weblogic上,建議用下面這二個 -->
21         <dependency>
22             <groupId>com.sun.faces</groupId>
23             <artifactId>jsf-api</artifactId>
24             <version>2.2.0</version>
25             <scope>compile</scope>
26         </dependency>
27         <dependency>
28             <groupId>com.sun.faces</groupId>
29             <artifactId>jsf-impl</artifactId>
30             <version>2.2.0</version>
31             <scope>compile</scope>
32         </dependency>
33 
34     </dependencies>
35 
36     <build>
37         <plugins>
38             <plugin>
39                 <artifactId>maven-compiler-plugin</artifactId>
40                 <version>3.1</version>
41                 <configuration>
42                     <source>1.7</source>
43                     <target>1.7</target>
44                 </configuration>
45             </plugin>
46             <plugin>
47                 <artifactId>maven-war-plugin</artifactId>
48                 <version>2.3</version>
49                 <configuration>
50                     <warSourceDirectory>webapp</warSourceDirectory>
51                     <failOnMissingWebXml>false</failOnMissingWebXml>
52                 </configuration>
53             </plugin>
54         </plugins>
55     </build>
56 </project>
pom.xml

pom.xml配置好以后,project中的Maven Dependencies中將看到相應的jar包已經被引入了,如下圖:

 

 

四、 編寫HelloWorld測試代碼

4.1 新建一個Bean

 1 package yjmyzz.controller;
 2 
 3 import javax.faces.bean.ManagedBean;
 4 
 5 @ManagedBean(name="Home")
 6 public class HomeController {
 7     
 8     public String sayHello(){
 9         return "hello JSF !";
10     }
11 
12 }
HomeController

4.2 新建一個xhtml頁面

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 2 <html xmlns="http://www.w3.org/1999/xhtml"
 3       xmlns:h="http://java.sun.com/jsf/html"
 4       xmlns:f="http://java.sun.com/jsf/core"
 5       xmlns:ui="http://java.sun.com/jsf/facelets"> 
 6 
 7 <h:head>
 8     <title>jsf-web</title>
 9 </h:head> 
10 <body> 
11     <h1>
12         #{Home.sayHello()}
13     </h1>
14 </body> 
15 </html>
index.xhtml

 

五、部署測試

直接在project上右擊-> Run on Server(前提:eclipse中已經配置好了weblogic 或 jboss 服務器,不熟悉eclipse中配置weblogic的朋友,可以先看這里)

weblogic上部署成功的運行截圖:

jboss上部署成功的運行截圖:

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()