欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java jfinal框架: hello world

程序员文章站 2022-03-25 10:58:41
前言官网:https://jfinal.com/官方在线文档:https://jfinal.com/doc这个框架的优势是:开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友。可以看成了java里的php语言。适合个人创业者,中小企业使用。......

前言

官网: 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

java jfinal框架: hello world

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

java jfinal框架: hello world

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

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

java jfinal框架: hello world

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

java jfinal框架: hello world

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

java jfinal框架: hello world

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

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

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

 

加入配置及代码

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

java jfinal框架: hello world

这里,可能会遇到一个问题: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>

运行

点击绿三角,即可运行。

java jfinal框架: hello world

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

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

java jfinal框架: hello world

解决方法:

添加依赖:

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

但是红色的,

java jfinal框架: hello world

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

 

 

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

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

现象为:

java jfinal框架: hello world

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

java jfinal框架: hello world

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

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

java jfinal框架: hello world

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

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

java jfinal框架: hello world

附录3:  Jetty Server 安装与使用

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

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

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

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

java jfinal框架: hello world

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

java jfinal框架: hello world

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

java jfinal框架: hello world

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

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

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

java jfinal框架: hello world

 

 

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

相关标签: 服务器