JFinal 學習筆記--搭建JFinal工程

一.準備條件:

(1)、開發工具 IDEA

(2)、了解Java web 基本知識。

(3)、了解Maven 基本知識。

(4)、了解使用 IDEA 創建Maven Web項目

(5)、JFinal 的基本認識 JFinal 官方學習社區

二. 搭建JFinal工程

1. 在IDEA 創建一個maven 工程。如圖所示

Paste_Image.png

2. 在pom.xml中添加JFinal jar包依賴

   <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <!-- 使用 JFinal 集成的 Jetty 來啟動項目。-->
    <dependency>
      <groupId>com.jfinal</groupId>
      <artifactId>jetty-server</artifactId>
      <version>8.1.8</version>
      <!--
          此處的 scope 值為 compile 僅為支持 IDEA 下啟動項目
          打 war 包時需要改成 provided,以免將一些無用的 jar 打進去
      -->
      <scope>compile</scope>
    </dependency>
    <!-- JFinal 相關jar -->
    <dependency>
      <groupId>com.jfinal</groupId>
      <artifactId>jfinal</artifactId>
      <version>3.1</version>
    </dependency>
    <dependency>
      <groupId>com.jfinal</groupId>
      <artifactId>cos</artifactId>
      <version>2017.5</version>
    </dependency>
    <!-- 日志 相關jar -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.16</version>
    </dependency>
  </dependencies>

  <build>
    <finalName>JFinal-Demo</finalName>
    <plugins>
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>8.1.8.v20121106</version>
        <configuration>
          <stopKey>stop</stopKey>
          <stopPort>5599</stopPort>
          <webAppConfig>
            <contextPath>/</contextPath>
          </webAppConfig>
          <scanIntervalSeconds>5</scanIntervalSeconds>
          <connectors>
            <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
              <port>80</port>
              <maxIdleTime>60000</maxIdleTime>
            </connector>
          </connectors>
        </configuration>
      </plugin>
    </plugins>
  </build>

3. 在resource 文件下配置log4j.properties

# log4j.rootLogger=WARN, stdout, file
log4j.rootLogger=ERROR, stdout, file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n

# Output to the File
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.file.File=./jfinal_demo_for_maven.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n

4. 在main/com/jfinal/demo 下創建DemoConfig.java 并繼承JFinalConfig

(沒有com/jfinal/dome文件夾,就自行創建,并選中右鍵 Mark Directory as Source Root)
創建 項目的入口Main方法
    public static void main(String[] args) {
        /**
         * 特別注意:Eclipse 之下建議的啟動方式
         */
//        JFinal.start("src/main/webapp", 80, "/", 5);

        /**
         * 特別注意:IDEA 之下建議的啟動方式,僅比 eclipse 之下少了最后一個參數
         */
        JFinal.start("src/main/webapp", 80, "/");
    }

DemoConfig.java 如下所示
import com.jfinal.config.*;
import com.jfinal.core.JFinal;
import com.jfinal.template.Engine;
import index.IndexController;
/**
 * 
 * API引導式配置
 */
public class DemoConfig extends JFinalConfig {
    /**
     * 運行此 main 方法可以啟動項目,此main方法可以放置在任意的Class類定義中,不一定要放于此
     *
     * 使用本方法啟動過第一次以后,會在開發工具的 debug、run config 中自動生成
     * 一條啟動配置,可對該自動生成的配置再添加額外的配置項,例如 VM argument 可配置為:
     * -XX:PermSize=64M -XX:MaxPermSize=256M
     */
    public static void main(String[] args) {
        /**
         * 特別注意:Eclipse 之下建議的啟動方式
         */
//      JFinal.start("src/main/webapp", 80, "/", 5);

        /**
         * 特別注意:IDEA 之下建議的啟動方式,僅比 eclipse 之下少了最后一個參數
         */
        JFinal.start("src/main/webapp", 80, "/");
    }

    /**
     * 配置常量
     */
    @Override
    public void configConstant(Constants me) {
        // 加載少量必要配置,隨后可用PropKit.get(...)獲取值
//      PropKit.use("a_little_config.txt");
//      me.setDevMode(PropKit.getBoolean("devMode", false));
    }

    /**
     * 配置訪問路由
     */
    @Override
    public void configRoute(Routes me) {
        me.add("/", IndexController.class, "/");    // 第三個參數為該Controller對應的視圖存放路徑
    }

    /**
     * @param me
     * 此方法用來配置 Template Engine(模板引擎)
     */
    @Override
    public void configEngine(Engine me) {}

    /**
     * 配置插件
     */
    @Override
    public void configPlugin(Plugins me) {}
    /**
     * 配置全局攔截器
     */
    @Override
    public void configInterceptor(Interceptors me) {}
    /**
     * 配置處理器
     */
    @Override
    public void configHandler(Handlers me) {}
}

5. 在webapp/WEB-INF/web.xml 中添加過濾器配置

  <filter>
    <filter-name>jfinal</filter-name>
    <filter-class>com.jfinal.core.JFinalFilter</filter-class>
    <init-param>
      <param-name>configClass</param-name>
      <param-value>DemoConfig</param-value>
    </init-param>
  </filter>

  <filter-mapping>
    <filter-name>jfinal</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

6. 創建 IndexController,并添加配置到DemoConfig.java中的configRoute()方法中

import com.jfinal.core.Controller;

/**
 * IndexController
 */
public class IndexController extends Controller {
    public void index() {
        render("index.html");
    }
}
    /**
     * 配置訪問路由
     */
    @Override
    public void configRoute(Routes me) {
        me.add("/", IndexController.class, "/index");    // 第三個參數為該Controller的視圖存放路徑
    }

7、 在創建webapp下創建index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="zh-CN" xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
</head>
<body>
<div class="manage_container">
    <div class="main">
        <h1>JFinal Demo 項目首頁</h1>
        <div class="table_box">
            <p>歡迎來到 JFinal極速開發世界!</p>
            <br><br><br>
            本Demo采用 JFinal Template 作為視圖文件。
            <br/><br/><br/>
        </div>
    </div>
</div>
</body>
</html>

8、 run 運行DemoConfig.java的main() 方法,訪問localhost, 響應如下圖所示,就算成功了!

Paste_Image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,941評論 6 342
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,881評論 18 139
  • jHipster - 微服務搭建 CC_簡書[http://www.lxweimin.com/u/be0d56c4...
    quanjj閱讀 829評論 0 2
  • 大家好,我叫嘟嘟,是個大男孩,今年三歲了。哦,有可能四歲了,很多爺爺奶奶都說我四歲了,但是媽媽告訴我說我今年三歲了...
    蘭吆吆閱讀 336評論 4 3
  • 來人的笑聲,讓所有人都住了手。所有人都不知道這是誰的聲音,所有人的目光在四處尋找。 四周突然出現了一大批的黑衣人,...
    火上冰凌亙古今閱讀 208評論 0 1