zoukankan      html  css  js  c++  java
  • 纯手工搭建JSF开发环境(JSF2.2+maven+weblogic 12c/jboss EAP 6.1+)

    前言:

    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上部署成功的运行截图:

  • 相关阅读:
    简单理解Socket
    进程间8种通信方式详解
    底部漂浮DIV
    Table样式
    QQ授权登录
    C#_批量插入数据到Sqlserver中的四种方式
    Asp.Net_单点登录
    html之meta详解
    程序员常用工具
    工厂模式理解
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/jsf-with-maven.html
Copyright © 2011-2022 走看看