idea环境下使用jfinal环境搭建
最近看到网上有人推荐使用JFinal(官网:http://www.jfinal.com/)开发WEB + ORM项目,自己于是到官网学习JFinal,官方文档提供了使用eclipse开发Jfinal项目的步骤,只是对Idea做了简略说明,没有详细的介绍,对于智商低的小编来说,看完文档还是没有搭建起来(人和人的差距怎么这么大呢快哭了),于是根据网上资料,小编自己写一篇入门详解,以便自己和他人学习。
1. 在Idea环境下新建project项目
1.1 新建project

1.2 选择创建Maven项目,并且不使用模板

1.3 输入Maven的groupId [jfinal-web-demo] 和artifactId [jfinal-demo]

1.4 输入项目名称jfinal-web-demo

1.5 将项目jfinal-web-demo作为项目的parent工程,用于定义maven依赖包的版本信息、编码方式等
1.5.1 删除src目录

1.5.2 将项目打包格式设置为pom

1.5.3 修改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-web-demo</groupId>
<artifactId>jfinal-demo</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<!-- 指定将要引入的jar的版本号 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jfinal.version>3.1</jfinal.version>
<junit.version>4.12</junit.version>
</properties>
<!--集中声明依赖-->
<dependencyManagement>
<dependencies>
<!--jfinal依赖-->
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal</artifactId>
<version>${jfinal.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
2. 创建Module [jfinal-web-demo-provider]
2.1 新建Module

2.2 根据idea提供的webapp模板创建module



2.3 指定module的名称为 jfinal-web-demo-provider

2.4 点击完成后需要等待一段时间,让idea根据webapp模板创建项目,生成目录如下:

2.5 创建java目录,并将java目录设置为source root



2.6 编辑module [jfinal-web-demo-provider]的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-demo</artifactId>
<groupId>jfinal-web-demo</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>jfinal-web-demo-provider</artifactId>
<packaging>war</packaging>
<name>jfinal-web-demo-provider Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal</artifactId>
</dependency>
</dependencies>
<build>
<finalName>jfinal-web-demo-provider</finalName>
<plugins>
<plugin>
<!--maven对应的tomcat插件,启动tomcat的时候使用-->
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8081</port>
<path>/</path>
<uriEncoding>utf-8</uriEncoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
3.编写代码
3.1 创建config类
package com.demo.config;
import com.demo.controller.HelloController;
import com.jfinal.config.*;
import com.jfinal.template.Engine;
/**
* Created by lance on 2017/6/19.
*/
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 configEngine(Engine me) { }
@Override
public void configPlugin(Plugins me) {
}
@Override
public void configInterceptor(Interceptors me) { }
@Override
public void configHandler(Handlers me) {
}
}
3.2 创建Controller类
package com.demo.controller;
import com.jfinal.core.Controller;
/**
* Created by lance on 2017/6/19.
*/
public class HelloController extends Controller {
public void index(){
renderText("hello world!");
}
}
3.3 编辑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>Archetype Created Web Application</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>
4.测试验证
4.1 使用Maven插件启动Tomcat:

4.2 启动tomcat成功提示:

4.3 使用浏览器验证,小编使用的是google chrome浏览器

看,简单吧!