原文链接:http://my.oschina.net/mzdbxqh/blog/718748
环境说明
| 程序 | 版本 |
|---|---|
| JRE | 1.8 |
| Tomcat | 7.0 |
| maven | 3.1.1 |
| Intellij IDEA | 14.0.3 |
一、新建一个Project
★ 打开IDEA,Create New Project

★ 通过Maven建立Project,但不使用模板

★ 填写Project相关命名,完成Project的创建。此处将Project命名为「jfinal-demo」


二、把当前Project改为一个POM工程。
该工程作为项目的父工程,用于定义各模块依赖的包的版本、编码方式等。
★ 删掉src目录

★ 编辑根目录下的pom.xml,将打包格式设置为pom。

★ 父工程的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>jfinal-demo</groupId>
<artifactId>jfinal-parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<!-- 集中定义依赖版本号 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jfinal.version>2.2</jfinal.version>
<junit.version>4.12</junit.version>
</properties>
<!--集中声明依赖-->
<dependencyManagement>
<dependencies>
<!--单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<!--jfinal依赖-->
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal</artifactId>
<version>${jfinal.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!--定义编译相关内容-->
<build>
<!--定义编译后的包名-->
<finalName>${project.artifactId}</finalName>
<!--此标签下的是将要加载的插件-->
<plugins>
<!-- 资源文件拷贝插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<!-- java编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
<!--此标签用于声明插件版本以便统一管理-->
<pluginManagement>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!--配置端口号-->
<port>80</port>
<!--配置访问路径,此处配置为根目录,即http://localhost/-->
<path>/</path>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build></project>三、新建Module(模块)「jfinal-web」
★ 在jfinal-demo目录上单击鼠标右键,新建子Module

★ 创建时选择使用模板



★ 创建完成后,目录结果如下图所示

四、编写测试用代码
★ 在jfinal-web模块的main目录下,新建java目录

★ 把刚建立的java目录标记为Sources Root,这样IDEA才会把该目录下的.java文件当做java源文件来处理

★ 给「jfinal-web」模块添加依赖。版本已经在父工程里定义了,这里不需要填写version。

★ 「jfinal-web」模块的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"> <parent> <artifactId>jfinal-parent</artifactId> <groupId>jfinal-demo</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>jfinal-web</artifactId> <packaging>war</packaging> <name>jfinal-web Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal</artifactId> </dependency> </dependencies> <build> <finalName>jfinal-web</finalName> </build></project>
★ 创建测试用Controller类「HelloController.java」


★ 该类要继承com.jfinal.core.Controller类,并实现index方法

★ com.demo.controller.HelloController
package com.demo.controller;import com.jfinal.core.Controller;public class HelloController extends Controller { public void index(){
renderText("hello world!");
}
}★ 创建测试用Config类「DemoConfig.java」


★ 该类要继承com.jfinal.config.JFinalConfi类,并重写五个方法。按Alt+Insert快捷键可快速生成代码


★ 注意这里加入了路由“/hello",定义了访问http://localhost/hello时,调用的是哪个controller

★ com.demo.config.DemoConfig
package com.demo.config;import com.demo.controller.HelloController;import com.jfinal.config.*;public class DemoConfig extends JFinalConfig { @Override
public void configConstant(Constants me) {
me.setDevMode(true);
} @Override
public void configRoute(Routes me) {
me.add("/hello", HelloController.class);
} @Override
public void configPlugin(Plugins me) {
} @Override
public void configInterceptor(Interceptors me) {
} @Override
public void configHandler(Handlers me) {
}
}五、配置运行环境
★ 照图操作,先不用理为什么



六、配置web.xml的过滤器,保证所有访问均能被JFinal拦截

★ web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app> <display-name>jfinal-demo</display-name> <filter> <filter-name>jfinal</filter-name> <filter-class>com.jfinal.core.JFinalFilter</filter-class> <init-param> <param-name>configClass</param-name> <param-value>com.demo.config.DemoConfig</param-value> </init-param> </filter> <filter-mapping> <filter-name>jfinal</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>
七、启动应用

★ 启动完成

★ 打开浏览器测试一下

搞定,收工。