最近在开发项目中使用到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 有很多优秀的项目可供下载
开发人员普遍要有会阅读文档,使用上面例子的能力。