java jfinal框架: hello world

2022-07-25,,,

前言

官网: https://jfinal.com/

这个框架的优势是: 开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友。

可以看成了java里的php语言。适合个人创业者,中小企业使用。还好就是由于是国人开人的,文档都是中文,容易阅读。

这是一个开源web开发框架 ,只用于web方面,spring则是一个大而全的框架,不单单可以用在web开发,其它领域也可以使用。

 

IDEA创建工程

由于是是web应用,必须使用旗舰版的IDEA,不能使用社区版的。

以下参考:  https://blog.csdn.net/m0_37456570/article/details/107563548

File -->New-->Project

工程类型:Maven-->Create from archetype-->org.apache.maven.archetypes:maven-archetype-webapp

填写名称路径,以及项目GroupId 和ArtifactId

注意:GroupId 和ArtifactId 要点开 Aritiface Coordinates前面的三角符号才能配置,使用默认的也行,不过是一个名字罢了。

设置Maven的参数,这次先使用默认配置吧,如下:

工程刚建好的时候,会自动开始使用pom导入jar包,本质上就是通过 pom.xml的描述,从网上代码仓库里下载jar包,如下:

耐心等待pom导入完毕,整个基本工程就算建立完毕啦。

首次可能会用时比较久(30分钟),下载过一次,后面就会直接使用本地的了,就不会有这个下载的过程啦。

导入完成后的工程文件如下:

 

加入配置及代码

加入java目录及相关子目录(文件),如下:

这里,可能会遇到一个问题:IDEA包右键没有新建Java class 的解决方法

解决方法见附件。

 

这4个文件的内容:

1:DemoConfig.java

创建自定义的JFinalConfig,自己配置文件一定要集成JFinalConfig

可能会遇到问题 "无法创建类 auto-detect file type by content",  解决方法见附录。

DemoConfig.java 内容如下:

package com.hui.demo.config;

import com.hui.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) {

    }
}

2:HelloController.java

因为只是最基础测试搭建,一些配置文件并未配置,需要配置可以通过上边的官方文档查看和配置,

接下来创建一个基础的视图管理Controller类(需要继承jfinal包中的Controller):

package com.hui.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");
    }
}

3:web.xml

这时候打开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>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.hui.demo.config.DemoConfig</param-value>
    </init-param>
  </filter>

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

4:StartMain.java

最后设置一个启动类,类似于SpringBoot内置Tomcat那样,需要一个main方法:

package com.hui.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,"/");
    }
}

5.添加依赖

pom.xml 文件:

<dependency>
      <groupId>com.jfinal</groupId>
      <artifactId>jfinal</artifactId>
      <version>3.4</version>
    </dependency>

运行

点击绿三角,即可运行。

点击运行,就出现了以下问题:

Exception in thread "main" java.lang.NoClassDefFoundError: com/jfinal/core/JFinal

解决方法:

添加依赖:

<dependency>
      <groupId>com.jfinal</groupId>
      <artifactId>jetty-server</artifactId>
      <version>2018.11</version>
      <scope>compile</scope>
    </dependency>

但是红色的,

这是因为 Jetty Server没有安装。安装方法见附录。

 

 

附录1:关于IDEA包右键没有新建Java class 的解决方法

参考: https://blog.csdn.net/weixin_43874433/article/details/104762253

现象为:

解决方法:右键-->New-->Mark Directory as --> Sources Root

附录2: 问题:无法创建类 auto-detect file type by content

会提示无法创建类,即使强行创建一个 DemoConfig.java 文件, IDEA也不会识别成 *.java文件。

原因:  你添加了一个特定样子的文件类型,IDE记住了,导致你这个文件都是按模板指定的文件类型。

解决方法:办法就是,打开设置,找到File Types(可以通过左上边的搜索快速找打,然后,找到签名添加的auto-detect file type by content类型,你会发下在右下边有你添加的文件安静的躺在那,快快把他删除了。

附录3:  Jetty Server 安装与使用

Jetty更轻量级。这是相对Tomcat而言的。功能类似,Tomcat和Jetty都是一种Servlet引擎。

还有一点不同的是,Jetty是一种嵌入式服务器,Tomcat要单独运行,但Jetty可以直接集成到代码里。安装方法也相对简单,通过maven就行。如下图所示,

Project Structure --> Libraries --> "+"号 --> 输入"jetty-server" --> 点击输入框右侧的搜索图标,就会显示好几个版本。

选中一个版本,添加到库里即可。

然后就会出现一个提示框,等待其完成即可。

添加成功后,就可以看到Libraries里多了一个选项:

接着在pom.xml文件里添加依赖:

<dependency>
      <groupId>com.jfinal</groupId>
      <artifactId>jfinal</artifactId>
      <version>3.4</version>
    </dependency>

版本号要对应,不能随便填,如果不正确,会有红色高亮提示。

 

 

本文地址:https://blog.csdn.net/zhuohui307317684/article/details/112225799

《java jfinal框架: hello world.doc》

下载本文的Word格式文档,以方便收藏与打印。