近期可能要接触一个JFinal项目,因为从来没有开发和看过JFinal项目,所以在此记录一下,也希望大佬们可以帮忙指正!!!谢谢
今天先做一个搭一个简单的JFinal项目,然后慢慢填满这个Demo
首先技术可能涉及Idea + maven + JFinal + jetty-server+..........
先挂上JFinal的官方文档:https://jfinal.com/doc(不要问我JFinal的有点缺点,这里不普及,百度一下,Google一下)
<begin>
①新建一个项目
②创建maven项目,并选择maven骨架,注意骨架名称
③填写项目GroupId 和ArtifactId
④默认
⑤
至此项目骨架创建完成,然后开始使用pom导入jar包
⑥
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal</artifactId>
<version>3.3</version>
</dependency>
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jetty-server</artifactId>
<version>8.1.8</version>
</dependency>
</dependencies>
⑦设置项目结构
创建自定义的JFinalConfig,自己配置文件一定要集成JFinalConfig
package com.dcjt518.demo.config;
import com.dcjt518.demo.controller.HelloController;
import com.jfinal.config.*;
import com.jfinal.template.Engine;
/**
* @program: JFinalFreemarkerDemo
* @description: JFinal配置中心
* @author: LuNanTing
* @create: 2020-07-24 15:35
**/
public class DemoConfig extends JFinalConfig {
@Override
public void configConstant(Constants constants) {
//开启开发模式
constants.setDevMode(true);
}
@Override
public void configRoute(Routes routes) {
routes.add("/hello", HelloController.class);
}
@Override
public void configEngine(Engine engine) {
}
@Override
public void configPlugin(Plugins plugins) {
}
@Override
public void configInterceptor(Interceptors interceptors) {
}
@Override
public void configHandler(Handlers handlers) {
}
}
因为只是最基础测试搭建,一些配置文件并未配置,需要配置可以通过上边的官方文档查看和配置,
接下来创建一个基础的视图管理Controller类(需要继承jfinal包中的Controller):
package com.dcjt518.demo.controller;
import com.jfinal.core.Controller;
/**
* @program: JFinalFreemarkerDemo
* @description:
* @author: LuNanTing
* @create: 2020-07-24 15:13
**/
public class HelloController extends Controller {
public void index(){
renderText("Hello World! jFinal");
}
}
这时候打开web.xml进行配置:
<web-app>
<display-name>Archetype Created Web Application</display-name>
<filter>
<filter-name>jfinal</filter-name>
<!-- 这里一定要引用JFinal的过滤器 -->
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
<init-param>
<!-- 要注意这里一定要配置为configClass,且注意大小写 -->
<param-name>configClass</param-name>
<!-- 引用了自定义的配置类 -->
<param-value>com.dcjt518.demo.config.DemoConfig</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
最后设置一个启动类,类似于SpringBoot内置Tomcat那样,需要一个main方法:
package com.dcjt518.demo;
import com.jfinal.core.JFinal;
/**
* @program: JFinalFreemarkerDemo
* @description: 启动类
* @author: LuNanTing
* @create: 2020-07-24 15:40
**/
public class StartMain {
public static void main(String[] args) {
JFinal.start("src/main/webapp",8081,"/");
}
}
然后启动测试,基础项目没有问题,后续再看引用的其他东西。。。。。。。。