Jfinal框架学习系列之一

本文档是Jfinal框架学习的第一部分,介绍了如何从零开始搭建一个简单的Hello World应用。首先,从jfinal官网获取资料,接着创建核心配置类,配置web.xml,建立控制器并设置路由,实现输出文字的功能。最后,讨论了控制器中不同类型的render方法,如返回HTML、JSON等,强调了视图类型的配置对于返回JSP页面的重要性。
摘要由CSDN通过智能技术生成

首先去jfinal官网下载资料:http://www.jfinal.com/

实现一个小的实例,例如在界面上输出“Hello World!”字样。。

具体的框架搭建介绍jfinal的官方网站上可以下载API,API里面介绍的已经非常非常详细了,然后这里只是记录一下自己的一点理解。

实现步骤:
1、创建项目,创建核心配置类,并且使该类继承JFinalConfig类,

2、在web.xml配置文件中进行配置

3、创建控制器类,并且使该类继承Controller类,然后配置好路由

4、写一个默认的index的action方法,在这个方法中使用renderText输出“Hello Word!”

5、启动项目,(启动方法参照jfinal官方文档),进行测试

核心配置类,需继承于JFinalConfig类

/**
  * 文件说明
  * @Description:扩展说明
  * @Copyright: 2015 dreamtech.com.cn Inc. All right reserved
  * @Version: V6.0
  */
package com.demo;

import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;

/**  
 * @Author: feizi
 * @Date: 2015年4月21日 下午3:40:37 
 * @ModifyUser: feizi
 * @ModifyDate: 2015年4月21日 下午3:40:37 
 * @Version:V6.0
 */
public class DemoConfig extends JFinalConfig{

    /**
     * 常量配置
     */
    @Override
    public void configConstant(Constants me) {
        //设置当前模式为开发模式
        me.setDevMode(true);
    }

    /**
     * 路由配置
     */
    @Override
    public void configRoute(Routes me) {
        me.add("/", IndexController.class);
    }

    /**
     * 插件配置
     */
    @Override
    public void configPlugin(Plugins me) {
    }

    /**
     * 拦截器配置
     */
    @Override
    public void configInterceptor(Interceptors me) {
    }

    /**
     * 处理器配置
     */
    @Override
    public void configHandler(Handlers me) {
    }

}

2、配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>jfinal_demo_01</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

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

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

上面的这段配置就是配置jfinal的一个核心过滤器,像之前的Servlet中也会有类似的配置,SSH框架中也需要配置对请求进行过滤。作用类似。

<url-pattern>/*</url-pattern>

这个地方配置为 /* 表示对所有的请求都进行过滤,然后通过<filter-name>jfinal</filter-name>这个映射路径找到上面所配置的jfinal核心过滤器,之后jfinal核心过滤器将请求进行转发,通过配置的初始化参数将请求转到<param-value>com.demo.DemoConfig</param-value>这个核心配置类中,之后就会由我们自定义的路由机制跳转到相应的类进行处理。。

3、创建控制器xxxController类,该类需继承于Controller类,该类的作用是对访问请求的路径进行过滤处理,根据核心配置类中的路由规则配置,进入到对应的控制器action中,例如上面的路由配置me.add("/", IndexController.class);是一个“/”,那么我们在浏览器中直接输入localhost的时候,就会默认进入到IndexController这个控制器类中,并且会默认进入到index()方法中。如果控制器中还有其他方法的话login()方法,那么我们想要访问login()方法的时候就需要在后面指定该action方法的名称,不进行指定默认就是index(),例如输入localhost/login就会进入到login()方法中了。

/**
  * 文件说明
  * @Description:扩展说明
  * @Copyright: 2015 dreamtech.com.cn Inc. All right reserved
  * @Version: V6.0
  */
package com.demo;

import com.jfinal.core.Controller;

/**  
 * @Author: feizi
 * @Date: 2015年4月21日 下午3:44:05 
 * @ModifyUser: feizi
 * @ModifyDate: 2015年4月21日 下午3:44:05 
 * @Version:V6.0
 */
public class IndexController extends Controller{

    public void index(){
        renderText("Hello Word!!!");
    }

    public void login(){
        renderText("Hello Jfinal!!");
    }

部署项目,启动运行。。
这里写图片描述

这里写图片描述

这里的这句话是直接将文本输出到界面,如果需要返回的是html页面,那么需要添加freemarker框架的jar包,使用render()方法.

render("index.html");

如果返回的页面是jsp页面,那么需要在核心配置类中的常量配置方法中(configConstant())中配置视图类型

/**
   * 常量配置
   */
  @Override
  public void configConstant(Constants me) {
    me.setDevMode(true);//设置开发模式
    me.setViewType(ViewType.JSP);//配置视图类型
  }

在控制器中返回jsp页面

render("index.jsp");

如果不配置ViewType,那么jsp文件则会以静态模板显示到界面,因为JFinal框架默认的就是静态模板,所以如果要返回jsp页面,那么就需要配置视图类型

render的系列方法还有很多,比如返回JSON,File,Javascript,Html等。

至于具体的jfinal的官方API文档里面已经介绍的相当详细了。。。。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值