使用Maven构建RichFaces 4.x项目

开始之前

本文将简要介绍一下如何在Maven项目中引入RichFaces 4.x。部分内容参考自RichFaces的官方文档。

以下是具体的开发环境:

  • IntelliJ IDEA 13
  • Maven 3.x
  • JDK 1.8
  • WildFly 8.x
  • RichFaces 4.3.6.Final

第一步 - 创建Maven项目

首先要创建一个正常的Maven项目(项目名为 facesDemo ),项目建成后目录结构如下图所示:

对应的 pom.xml 文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.eagle</groupId>
<artifactId>facesDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging> <build>
<!-- 打包后的项目名 -->
<finalName>facesDemo</finalName>
</build> </project>

第二步 - 添加依赖文件

RichFaces自己包含有4个库文件:

  • richfaces-core-api.jar
  • richfaces-core-impl.jar
  • richfaces-components-api.jar
  • richfaces-components-impl.jar

此外,RichFaces还依赖于一些第三方文件,这里只列出那些必须的依赖文件:

  • JSF 2.x的具体实现
  • guava.jar
  • cssparser.jar
  • sac.jar

接下来就要在 pom.xml 文件中引入这些依赖文件。首先引入RichFaces的库文件:

<properties>
<!-- RichFaces version -->
<richfaces.version>4.3.6.Final</richfaces.version>
<!-- JSF version -->
<jsf.version>2.2.6</jsf.version>
</properties> <dependencies>
<dependency>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-components-ui</artifactId>
<version>${richfaces.version}</version>
</dependency>
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-impl</artifactId>
<version>${richfaces.version}</version>
</dependency>
</dependencies>

接下来添加JSF的具体实现。由于项目的服务器使用的是WildFly,它本身已经集成了JSF,所以将下面配置的依赖范围设为 provided (仅用于编译和测试) :

<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>${jsf.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>${jsf.version}</version>
<scope>provided</scope>
</dependency>

由于Maven的传递性依赖机制,那些没有在 pom.xml 文件中显式引入的依赖文件也会被引入项目中(上述依赖文件的坐标都来自Maven Central Repository)。最后文件之间的依赖关系如下图所示:

第三步 - 配置RichFaces

web.xml 文件中配置RichFaces。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list> <context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param> <servlet>
<servlet-name>facesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
</web-app>

WEB-INF 文件夹下新建 faces-config.xml 文件。

<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"> </faces-config>

第四步 - 创建显示页面

webapp 目录下新建 index.xhtml 文件,内容如下:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<f:view>
<h:head></h:head>
<h:body>
<rich:panel header="Richfaces Demo">
<h:outputLabel value="Hello Richfaces"/>
</rich:panel>
</h:body>
</f:view>
</ui:composition>

大功告成,将项目打包部署之后就可以看到页面效果了。

使用Maven构建RichFaces 4.x项目的更多相关文章

  1. Maven构建真正的J2EE项目

    今天同事问起我眼下用Maven构建的多模块项目架构和曾经用Eclipse创建的Web项目的问题.以下将讲一下使用maven搭建多模块的J2ee项目,以及採用这样的方式搭建项目对日后项目的水平拆分和垂直 ...

  2. 三、使用Maven构建简单的java项目

    前边,我刚搭建了Maven环境,还有给大家推荐了学习资源,这个小节,我们来就来,,简单的玩玩maven. 1.所需工具: 1.Eclipse     2.apache-maven-3.3.9   3. ...

  3. 基于Maven构建的Spring+Mybatis项目

    项目的目录结构: 1.基于Maven构建Web项目 参考:基于Maven构建Web项目 2.导入项目依赖 Spring 核心容器(Beans.Core.Context.Context support. ...

  4. 使用Maven构建和测试Java项目

    我们在创建项目时要学习的是如何使用 Maven 来创建一个 Java 应用程序.现在将学习如何构建和测试应用程序. 进入到 C:\MVN 目录我们准备创建来 java应用程序.打开 consumerB ...

  5. 使用maven构建基本的web项目结构

    由于当前公司在组织进行项目基本结构的整理,将以前通过eclipse/ ant 方式构建的项目向maven上迁移,于是便进行maven项目方面的调研. 对于maven项目,基本的结构已经在标准文件中: ...

  6. (从零开始java开发) IDEA+MAVEN构建一个webapp骨架项目(解决一直downloading问题)

    折腾了一段时间终于解决了, 可能是因为网络问题 xml一直没法访问 maven 骨架生成项目速度慢的令人发指,都在Generating project in Batch mode等待,Idea状态显示 ...

  7. 图文详解 IntelliJ IDEA 15 创建 Maven 构建的 Java Web 项目(使用 Jetty 容器)

    图文详解 IntelliJ IDEA 15 创建 maven 的 Web 项目 搭建 maven 项目结构 1.使用 IntelliJ IDEA 15 新建一个项目.  2.设置 GAV 坐标  3. ...

  8. IDEA+MAVEN构建一个webapp骨架项目(解决一直卡在downloading plugins for问题)

    下载:链接:https://pan.baidu.com/s/1jJx73H8 密码:nud0 第一步   我在上面链接下载了这个骨架xml,放进本地(你的目录默认.m2)\repository\org ...

  9. 使用Maven构建多模块企业项目

    首先,前面几次学习已经学会了安装maven,如何创建maven项目等,最近的学习,终于有点进展了,搭建一下企业级多模块项目. 好了,废话不多说,具体如下: 首先新建一个maven项目,pom.xml的 ...

随机推荐

  1. Hibernate Validator验证标签说明

    Hibernate Validator是JSR-303的一个实现. 在FormBean里添加Hibernate Validator的注解,与定义一个校验类的做法相比.注解更加简洁.灵活. Bean V ...

  2. CsvHelper

    写66666行两个数字 用CsvHelper里的ExcelSerializer 400ms SaveAs 200ms 共600ms 直接用StreamWriter 150ms 行数可以超过65536 ...

  3. 15. 星际争霸之php设计模式--策略模式

    题记==============================================================================本php设计模式专辑来源于博客(jymo ...

  4. 转:SVN服务器搭建和使用(三)

    http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html 接下来,试试用TortoiseSVN修改文件,添加文件,删除文件, ...

  5. IIS 服务没有及时响应启动或控制请求

    微软刚发布的补丁的原因,据说补丁KB939373.KB942831都会影响iis的正常运行,但是我在“添加或删除程序里”(要勾选:显示更新,才能会显示所打的补丁)没有发现以上两个补丁.最后,我发现把K ...

  6. 关于ClassLoader的一点小问题

    今天在看某框架的源码的时候,遇到一个使用URLClassLoader加载Servlet类的问题,当自己在eclipse里面做试验的时候,始终无法把Class加载成功.比如: ClassLoader c ...

  7. SVN merge的主干,分支的相互合并操作

    本文只研究了 在本地如何进行主干,分支的相互合并 的操作:从主干到分支,从分支到主干. 本地客户端工具是tortoisesvn 测试用例. 1.本地添加test文件夹 在test文件夹下分别建立tru ...

  8. java中如何获取昨天的当前日期

    在java里,获取昨天的当前日期,可以采用calendar来做,也可以采用date来做:如下: 1.采用calendar来做: Calendar cal=Calendar.getInstance(); ...

  9. size_t总结

    1.sizeof返回的必定是无符号整形,在标准c中通过 typedef 将返回值类型定义为size_t. 若用printf输出size_t类型时,C99中定义格式符%zd;若编译器不支持可以尝试%u或 ...

  10. Temporary ASP.NET 拒绝访问

    CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\dd813f66 ...