JFinal入门教程

标签: JFinal
4人阅读 评论(0) 收藏 举报
分类:

JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。

1、配置pom文件,JFinal需要添加对应的依赖

<?xml version="1.0" encoding="UTF-8"?>

<!-- $Id: pom.xml 642118 2008-03-28 08:04:16Z reinhard $ -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <packaging>war</packaging>

    <name>jfinal-demo</name>
    <groupId>com.zfskkk</groupId>
    <artifactId>jfinal-demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
    </properties>

    <!-- 使用阿里 maven 库 -->
    <repositories>
        <repository>
            <id>ali-maven</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
                <checksumPolicy>fail</checksumPolicy>
            </snapshots>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>com.jfinal</groupId>
            <artifactId>jetty-server</artifactId>
            <version>8.1.8</version>
            <!--
                此处的 scope 值为 compile 仅为支持 IDEA 下启动项目
                打 war 包时需要改成 provided,以免将一些无用的 jar 打进去
            -->
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.jfinal</groupId>
            <artifactId>jfinal</artifactId>
            <version>3.3</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>jfinal_demo_for_maven</finalName>
        <plugins>
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>8.1.11.v20130520</version>
                <configuration>
                    <stopKey>stop</stopKey>
                    <stopPort>5599</stopPort>
                    <webAppConfig>
                        <contextPath>/</contextPath>
                    </webAppConfig>
                    <scanIntervalSeconds>5</scanIntervalSeconds>
                    <connectors>
                        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
                            <port>80</port>
                            <maxIdleTime>60000</maxIdleTime>
                        </connector>
                    </connectors>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

2、JFinal需要有一个配置文件,所有的配置信息都可以在该文件中进行配置,该配置文件需要继承JFinalConfig

package com.zfskkk;

import com.jfinal.config.*;
import com.jfinal.core.JFinal;
import com.jfinal.render.ViewType;
import com.jfinal.template.Engine;

public class MyConfig extends JFinalConfig {

    public void configConstant(Constants constants) {
        constants.setDevMode(true);
        constants.setEncoding("UTF-8");
        constants.setViewType(ViewType.JSP);
    }

    public void configRoute(Routes routes) {
    }

    public void configEngine(Engine engine) {

    }

    public void configPlugin(Plugins plugins) {

    }

    public void configInterceptor(Interceptors interceptors) {
    }

    public void configHandler(Handlers handlers) {
    }

    // 系统启动完成后回调
    public void afterJFinalStart() {
    }

    // 系统关闭之前回调
    public void beforeJFinalStop() {
    }

}

3、在web.xml文件中配置过滤器,web项目启动后需要根据这个过滤器来找到配置文件读取相关配置信息

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <filter>
        <filter-name>jfinal</filter-name>
        <filter-class>com.jfinal.core.JFinalFilter</filter-class>
        <init-param>
            <param-name>configClass</param-name>
            <param-value>com.zfskkk.MyConfig</param-value>
        </init-param>
    </filter>

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

4、启动,启动的main方法不一定需要在Controller里面,比如在MyConfig 配置文件中也是可以的

package com.zfskkk;

import com.jfinal.core.Controller;
import com.jfinal.core.JFinal;

public class HelloController extends Controller {
    public static void main(String[] args) {
        // 第二个参数为端口
        JFinal.start("src/main/webapp", 80, "/");
    }
}

如下图所示说明启动成功,
这里写图片描述

5、创建Controller

package com.zfskkk;

import com.jfinal.aop.Before;
import com.jfinal.core.ActionKey;
import com.jfinal.core.Controller;

public class MyController extends Controller {
    public void index() {
        renderText("hello world ,this is my first controller");
    }

    public void hello() {
        renderText("this is hello method");
    }

    @ActionKey("/my/test1/key")
    public void testKey() {
        renderText("/my/test1/key");
    }
}

自己创建的Controller必须要继承JFinal的Controller,然后在MyConfig 配置文件中添加路由配置,最后重启访问http://localhost/hello

    public void configRoute(Routes routes) {
        routes.add("/hello", MyController.class);
    }

这里写图片描述

查看评论

JFinal框架入门第一天

原本想入门springboot的,但是原谅我java基础真的一般 所以,一位大神伙伴就推荐了一个JFinal框架(一个国产框架) 据说学习好了这个框架,springboot就学习了一半了 其实框...
  • qq_35964258
  • qq_35964258
  • 2017年09月18日 23:24
  • 452

新手入门-如何使用JFinal开发javaweb(1)

博主本人是菜鸟。写这篇博客的原因是为了让和我一样的入门级菜鸟少走弯,还有就是加深我的理解。 JFinal框架是国产的很轻量级的开发框架。能让程序员写的代码精简很多,开发效率从而更快。 我是写了一个JF...
  • u011302959
  • u011302959
  • 2016年05月08日 17:25
  • 8106

JFinal项目开发菜鸟入门教程01

打算开发自己的后台管理系统, 然后搜索什么最容易上手, 得到一个结果, JFinal开发迭代比较快, 开源, 开发周期短等很多优点.  所以就选择了这个框架. 既然认定了这个框架,...
  • junzaivip
  • junzaivip
  • 2017年11月17日 10:45
  • 388

JFinal上传头像总结

JFinal上传头像总结getFile文件上传 Controller 提供了 getFile 系列方法支持文件上传。 特别注意: 如果客户端请求为 multipartrequest( form 表...
  • Meng_You_Lin
  • Meng_You_Lin
  • 2017年03月25日 20:53
  • 597

JFinal3.0初体验(三)MySQL多表联查

代码: https://code.csdn.net/u012995856/gxshop/tree/master点击店铺跳转进入店铺首页,显示店铺中的商品。效果: 所谓多表联查就是 查找某...
  • u012995856
  • u012995856
  • 2017年04月02日 18:50
  • 1506

JFinal+ajaxfileupload实现图片的异步上传

需要用到的包和资源js文件: jquery.min.js(需要jQuery的支持) ajaxfileupload.js(处理异步上传的文件)外部包: jfinal-2.0-bin-with-sr...
  • u013539342
  • u013539342
  • 2016年01月29日 23:40
  • 6650

基于JFinal框架的Tomcat跨域

1、将跨域jar包放到项目的WEB-INF的bin中,两个jar包为:cors-filter-1.7.jar和java-property-utils-1.9.jar 2、在Web.xml中添加如下(...
  • u010520626
  • u010520626
  • 2016年03月09日 16:16
  • 1839

jfinalQ开发教程07-qiao-util.jar:邮件和短信

邮件服务 邮件服务是大部分系统中不可或缺的一个服务,jfinalQ中采用mail.jar实现发送邮件功能。 QMailUtil com.uikoo9.util.function.QMailUtil对...
  • uikoo9
  • uikoo9
  • 2015年10月10日 12:16
  • 1441

SSH与jFinal如何决舍

SSH与jFinal如何决舍
  • educast
  • educast
  • 2016年01月11日 17:12
  • 1588

JFinal ajax 跨越请求 jsonp

通过JFinal 框架,ajax跨域请求。后台代码: public void dologin() { JSONObject json = new JSONO...
  • kai_wei
  • kai_wei
  • 2016年09月09日 11:33
  • 1400
    个人资料
    等级:
    访问量: 287
    积分: 39
    排名: 195万+
    文章分类
    文章存档