IDEA+maven快速上手JFinal(全步骤图文解析)

原文链接:http://my.oschina.net/mzdbxqh/blog/718748


环境说明

程序版本
JRE1.8
Tomcat7.0
maven3.1.1
Intellij IDEA14.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>

七、启动应用

★ 启动完成

★ 打开浏览器测试一下

搞定,收工。


评论区

JFinal

2016-07-27 10:01

有朋友正好需要呢: http://www.jfinal.com/feedback/127 感谢分享

jacksun2015

2016-07-27 10:13

为什么我用idea创建project之后再创建maven module,创建之后只有一个pom.xml文件,其他src,什么的都没有!!??

许乌龙

2016-07-27 10:52

@jacksun2015 创建module的时候,勾选Create from archetype,maven会帮你创建目录。或者自己手动创建目录也可以。

jacksun2015

2016-07-27 11:11

@许乌龙 勾选了的

许乌龙

2016-07-27 11:19

@jacksun2015 勾选后要在下面选择一种archetype(相当于项目模板)。实在没有的话,手动new一个目录。其中java目录需要mark as source root,才能在该目录下新建java文件

jacksun2015

2016-07-27 13:11

@许乌龙 对,就是手动new的然后在module里面mark as的,后来我就继续用eclipse了~

许乌龙

2016-07-27 15:14

@jacksun2015 真是一个悲伤的故事

hzw

2016-07-27 17:45

找了大半天都没有一个idea的增删改查的完整例子

飞羽

2016-08-05 10:49

不错啊,按照楼主的教程,成功创建!

Ferrari8899

2017-02-21 18:08

怎么截图都看不清

威仔

2017-03-16 16:45

JFinal

2017-03-16 16:46

@威仔 图片链接链到了别的网站,可能是该网站防止了图片外链导致不显示

cknote

2017-03-18 09:36

图显示不出来

wilco

2017-03-19 16:31

老板,图不见了。。

ulrica

2017-03-28 14:29

截图,有的怎么是中国开源社区logo图片

无奈MYGOD

2017-04-13 20:54

截图好像有些出错了,加载不出来,望贴主重传一下,万分感谢

zhizaideren

2017-05-05 10:31

就是有些图显示不了,如果大家想看的话https://baijiahao.baidu.com/po/feed/share?wfr=spider&for=pc&context=%7B%22sourceFrom%22%3A%22bjh%22%2C%22nid%22%3A%22news_2804763600855702050%22%7D,他们两个结合着看

qgzsyf

2017-09-21 16:48

jfinal社区里面的好多源码都是maven版的,请问怎样将它们运行在eclipse里呢?

JFinal

2017-09-21 22:44

@qgzsyf 稍微学习一下 maven 的使用,这个现在是基础。 maven 项目可以直接导入 eclipse , 直接运行起来

qgzsyf

2017-09-25 19:04

@JFinal好的,谢谢詹总。

Jeese

2017-11-27 10:57

请楼主指点指点,
已经编译成功了,但是运行不起来,输出台提示了这两段语句
[WARNING] The requested profile "clean" could not be activated because it does not exist.
[WARNING] The requested profile "install" could not be activated because it does not exist.

这个可以怎么解决呢,楼主。

JFinal

2017-11-27 18:23

@Jeese 建议一个最简单的办法:
1:在首页右侧下载 jfinal-3.2-demo-for-maven.zip 这个项目
2:解压以后,导入 IDEA,IDEA 会自动生成所有配置
3:根据 JFinalDemoConfig 中 main 方法中的注释说明直接启动项目

利用上述方法创建好项目,可以推导出来:只要将项目事先建成 maven 结构的,直接导入 IDEA 中就建好了项目,可以代替其它创建项目的方式

这个在当前 git 普及的情况下是极其有用的,因为 git 上的项目通常是 maven 结构给到你

yuner

2018-07-27 15:07

你确定这个Jfinal-web的pom文件没问题? 这个com.jfinal是哪里来的

yuner

2018-07-27 15:07

还有jar包都没进来

maxwade

2018-09-22 11:20

大神好,我参考文章可以用tomcat启动成功,为什么用jfinal.start() jetty启动时,可能成功,但是访问不了IndexController

热门分享

扫码入社