本文主要介绍用Maven3创建一个简单的JSF2web应用程序,该程序仅仅包含一个非常简单的Facelete页面index.xhtml。同时该工程还使用了MyBatis和logback等库。我自己将该工程作为一个模板工程。
创建Web程序的命令
使用maven-archetype-webapp命令创建程序,具体格式如下:
mvn archetype:create
-DgroupId=[your project's group id]
-DartifactId=[your project's artifact id]
-DarchetypeArtifactId=maven-archetype-webapp
创建的项目目录结构如下:
|-- src
| `-- main
| `-- java
| |-- resources
| |-- webapp
| | `-- WEB-INF
| | `-- web.xml
| `-- index.jsp
`-- pom.xml
创建项目
mvn archetype:generate -DgroupId=com.freebird -DartifactId=example
-DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
目录结构如下:
chenshu@csdesktop:~/work/svnclient/MyCodes/document/JSF2$ ls -R ./example/
./example/:
pom.xml src
./example/src:
main
./example/src/main:
resources webapp
./example/src/main/resources:
./example/src/main/webapp:
index.jsp WEB-INF
./example/src/main/webapp/WEB-INF:
web.xml
把该项目修改成JSF2项目
创建src/main/java目录,并创建子目录树如下:
chenshu@csdesktop:~/work/svnclient/MyCodes/document/JSF2/example/src/main/java$ ls -R ./
./:
com
./com:
freebird
./com/freebird:
example
./com/freebird/example:
component pagebean renderer
./com/freebird/example/component:
./com/freebird/example/pagebean:
./com/freebird/example/renderer:
src/main/webapp目录就是JavaEE Web模块的根目录,里面包含了所有的Faceletes的xhtml页面文件以及描述部署信息的配置文件
在该目录下创建index.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">
<f:view contentType="text/html"/>
<h:head>
<title>Hello World!</title>
</h:head>
<h:body bgcolor="white">
<h2>My name is Duke. What is yours?</h2>
<h:form id="helloForm" >
<h:outputText value="This is an example page"/>
</h:form>
</h:body>
</html>
修改pom.xml文件如下
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.freebird</groupId>
<artifactId>example</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>example Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>0.9.26</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.0.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.14</version>
</dependency>
</dependencies>
<build>
<finalName>example</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${compileSource}</source>
<target>${compileSource}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.3</version>
</plugin>
<plugin>
<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
<version>2.1</version>
<configuration>
<glassfishDirectory>/usr/local/glassfish-3.0.1</glassfishDirectory>
<user>admin</user>
<passwordFile>/home/chenshu/glassfish_password</passwordFile>
<debug>true</debug>
<droptables>true</droptables>
<!—
<terse>true</terse>—>
<echo>true</echo>
<domainDirectory>/usr/local/glassfish-3.0.1/glassfish/domains</domainDirectory>
<domain>
<name>domain1</name>
<adminPort>4848</adminPort>
<httpPort>8080</httpPort>
<httpsPort>8443</httpsPort>
<iiopPort>3700</iiopPort>
<jmsPort>7676</jmsPort>
<reuse>false</reuse>
</domain>
<components>
<component>
<name>example</name>
<artifact>target/${project.build.finalName}.war</artifact>
</component>
</components>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<properties>
<netbeans.hint.deploy.server>gfv3ee6</netbeans.hint.deploy.server>
<compileSource>1.6</compileSource>
</properties>
</project>
Modfy the web.xml file like so:
<?xml version='1.0' encoding='UTF-8'?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>example</display-name>
<description>JSF2 example project</description>
<context-param>
<description>
Tell the runtime where we are in the project development
lifecycle. Valid values are:
Development, UnitTest, SystemTest, or Production.
The runtime will display helpful hints to correct common mistakes
when the value is Development.
</description>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>facelets.FACELETS_SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.allowTextChildren</param-name>
<param-value>true</param-value>
</context-param>
<!— Faces Servlet —>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
部署网站相关命令
本文假设已经安装了glassfish v3.0.1,现在show一下maven glassfish plugin提供的各种操作命令,我在example目录下创建了几个脚本文件,省得每次敲很长的命令:
start_doman.sh文件
mvn org.glassfish.maven.plugin:maven-glassfish-plugin:start-domain
restart-domain.sh文件
mvn org.glassfish.maven.plugin:maven-glassfish-plugin:stop-domain
mvn org.glassfish.maven.plugin:maven-glassfish-plugin:start-domain
deploy.sh文件
mvn clean install
mvn org.glassfish.maven.plugin:maven-glassfish-plugin:deploy
redeploy.sh文件
mvn clean install
mvn org.glassfish.maven.plugin:maven-glassfish-plugin:redeploy
initForDebug.sh文件(该脚本用于debug模式启动glassfish和部署网站)
mvn clean install
mvn org.glassfish.maven.plugin:maven-glassfish-plugin:start-domain
mvn org.glassfish.maven.plugin:maven-glassfish-plugin:redeploy
cd /usr/local/glassfish-3.0.1/bin
./asadmin restart-domain domain1
logback配置文件
在src/main/resources目录下创建logback.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="File" class="ch.qos.logback.core.FileAppender">
<file>/home/chenshu/example.log</file>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>
<logger name="com.base22" level="TRACE"/>
<root level="debug">
<appender-ref ref="File" />
</root>
</configuration>
分享到:
相关推荐
它提供了用于开发Web应用程序的UI组件、事件处理和数据绑定机制。Maven则是一个项目管理工具,它可以帮助Java开发者管理项目的构建、依赖、报告等过程。在本场景中,"maven包jsf"指的是使用Maven构建的包含JSF相关...
- 讲解了如何使用 Maven 和 Eclipse 创建一个完整的 JSF Web 应用程序。 - 介绍 JSF 的基本概念、组件使用、事件处理等内容。 通过这三个教程的学习,读者可以掌握如何使用 Maven 和 Eclipse 构建 Java 和 Java ...
这篇博客文章详细介绍了如何整合这些技术来构建高效且可扩展的企业应用程序。 首先,Spring 框架是 Java 企业级应用中的基石,它提供了丰富的功能,如依赖注入(DI),面向切面编程(AOP),以及用于事务管理、数据访问...
标题 "primefaces jsf spring3.2.4 hibernate4.2.7 maven整合" 涉及到的是一个基于Java技术栈的Web应用程序开发整合。以下是这些技术的详细说明: **PrimeFaces**:PrimeFaces是一个开源的用户界面组件库,专为Java...
将由该原型创建的 JSF 2 Web 应用程序将具有以下功能: JDK 1.7 版 myfaces-api 2.1.17 myfaces-impl 2.1.17 小程序 API 3.0 JSP API 2.3 JSTL 2.1 JUnit 4.12 用法 首先,您需要克隆此存储库并在本地运行以下...
JSF2是Java平台上的一个用于构建用户界面的组件模型框架,它提供了丰富的UI组件、事件处理机制和数据绑定功能,适用于开发Web应用程序。这个"JSF2 example project"是一个模板工程,意味着它提供了一个基础结构,...
**JSFDB项目详解:Maven中的JSF与PrimeFaces结合...通过这个JSFDB项目,开发者可以学习到如何在Maven环境中集成JSF和PrimeFaces,以及如何与MySQL数据库进行有效通信,这将有助于构建功能完备、用户友好的Web应用程序。
在现代Web开发中,JavaServer Faces (JSF) 是一种广泛使用的服务器端用户界面框架,它为构建动态、数据驱动的Web应用程序提供了强大的支持。JSF 1.2是JSF框架的一个早期版本,虽然现在有更新的版本如JSF 2.x,但在...
在本项目中,我们探索的是一个基于Java的Web应用程序,其核心技术栈包括JSF(JavaServer Faces)、Spring Data JPA、Redis以及Maven。这些技术的整合为开发提供了高效的工具和框架,使得开发者能够快速构建出功能...
**JSF2**(JavaServer Faces 2.0)是Java EE的一个标准组件模型和视图框架,用于构建Web应用程序。JSF2引入了许多改进,如增强的可扩展性和组件化,使得开发更加高效。 **Ubuntu**是Linux操作系统,它被用作开发...
【alesilva_jsf_maven:测试jsf】项目是一个基于Java的Web应用程序,它使用了JavaServer Faces (JSF)框架和Maven构建工具。这个项目的核心目标是展示如何在Maven环境下有效地管理和构建一个JSF应用。下面将详细探讨...
该骨架用于创建一个基于Hibernate、Spring和JSF的Web应用程序原型。它包含了Web开发所需的主要技术栈,适用于希望快速启动一个企业级Web应用的开发者。 #### 2. internal->appfuse-basic-spring 此骨架用于创建基于...
JavaServer Faces 2(JSF2)是Java EE平台上的一个用户界面组件框架,用于构建Web应用程序。它提供了一种声明式的方式来创建用户界面,简化了开发流程。在这个基于Maven的最小系统中,我们将深入探讨如何利用Maven...
`jsf-api-2.0.3.jar` 包含的API接口定义了JSF的各种核心接口,例如`FacesContext`、`UIComponent`、`ManagedBean`等,这些都是构建JSF应用程序的基础。开发者可以引用这些接口来创建自定义组件,实现事件监听器,...
**JSF(JavaServer Faces)** 是一种Java平台上的Web应用程序开发框架,它提供了一种组件化和事件驱动的方式来创建用户界面。JSF的核心概念包括组件、事件、渲染器和生命周期,这些元素共同构建了一个强大的MVC...
7. **jsf实例**:在实际应用中,JSF实例通常指的是一个运行时的JSF应用程序,它包含了配置、组件、Managed Beans以及它们之间的交互。 在“Login”示例中,我们可能看到以下代码片段: ```xml <!-- login.xhtml --...
JavaServer Faces (JSF) 是一个用于构建用户界面的 JavaEE 核心技术,它提供了一种声明式的方式来创建 Web 应用程序的用户界面。JSF 提供了一个组件模型,使得开发人员可以将 UI 组件与业务逻辑相分离,从而简化了 ...
理解这些阶段对于调试和优化JSF应用程序至关重要。 七、JSF与 Managed Beans Managed Beans是JSF中的业务逻辑载体,它们可以注入到JSF组件中,处理用户输入和业务逻辑。使用`@ManagedBean`和`@SessionScoped`等注解...
本篇文章将详细介绍如何在IDEA中利用Maven创建一个基于Servlet 3.x和Web 3.x标准的工程模板。 首先,我们需要了解Servlet 3.x和Web 3.x的概念。Servlet 3.x是Java Servlet API的一个版本,它引入了许多新特性,如...
JSF(JavaServer Faces)是Oracle公司推出的Java Web应用程序开发框架,用于构建用户界面。PrimeFaces则是一个流行的JSF组件库,提供了丰富的UI组件,使得开发者可以创建出具有现代感和交互性的Web应用。Spring框架...