最近在開發項目中使用到JFinal框架,簡單回憶寫個idea環境下的JFinal框架的helloworld實例。
JFinal 是基於Java 語言的極速 web 開發框架,其核心設計目標是開發迅速、代碼量少、學習簡單、功能強大、輕量級、易擴展、Restful。在擁有Java語言所有優勢的同時再擁有ruby、python等動態語言的開發效率。相對於springMVC少了service層,sql處理用了創新的Record處理。
環境說明
程序 | 版本 |
JRE | 1.8.0_144 |
Tomcat | 8.0.23 |
maven | 3.3.9 |
Intellij IDEA | 2018.01 完全版 |
1.1 新建project
1. 在Idea環境下新建project項目
1.2 選擇創建Maven-webapp項目
1.3輸入maven的GroupId和Artifactld
1.4配置maven3.3.9版本及倉庫(Local repository本地倉庫 及修改/conf/setting.xml配置)
1.5填寫項目名稱
2. 配置JFinal
2.1修改項目結構
添加文件夾java 及resources java文件夾標記爲Sources Root(源代碼路徑) resources標記爲(ReSources Root)(資源文件路徑)
2.2pom.xml添加JFinal4.5框架依賴:
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal</artifactId>
<version>4.5</version>
</dependency>
2.2.1 idea使用的jdk是1.8.0_144 配置請參照其他文章:
https://www.cnblogs.com/Knowledge-has-no-limit/p/7234360.html
2.3新建config文件夾,添加DemoConfig(JFinal配置文件) 繼承JFinalConfig即可
package config;
import com.jfinal.config.*;
import com.jfinal.template.Engine;
import controller.HelloController;
/**
*
*/
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) {
}
}
2.4配置web.xml DemoConfig路徑的配置必須正確
<!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>config.DemoConfig</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
2.5新建controller文件夾,創建HelloController 繼承Controller即可
package controller;
import com.jfinal.core.Controller;
public class HelloController extends Controller {
public void index(){
renderText("hello world!");
}
}
3.啓動項目
3.1最終項目結構
3.2idea配置tomcat8.0.23
tomcat安裝可參考:https://blog.csdn.net/Atishoo_13/article/details/86428867
idea配置tomcat可參考:https://blog.csdn.net/zjh_746140129/article/details/81174848
端口號:8080
點擊debugger啓動
啓動成功:
3.3瀏覽器調用:輸入http://localhost:8080/hello,返回hello world!成功 日誌console 如上圖
易錯點:
之前web.xml配置錯了DemoConfig的路徑,導致項目啓動失敗
<!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.jfinal.config.DemoConfig</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
啓動報錯: One or more Filters failed to start 過濾器配置出錯
JFinal深入瞭解:
本項目只使用了 JFinal的基本配置及最簡單的Controller 更深入知識可查閱JFinal官方文檔
JFinal框架文檔:https://www.jfinal.com/doc
關於CURD及數據庫連接,日誌,json傳值的處理及你要的一切都寫在文檔裏。
JFinal項目:https://www.jfinal.com/project 有很多優秀的項目可供下載
開發人員普遍要有會閱讀文檔,使用上面例子的能力。