jfinal快速开发框架学习(二)

Controller

1 概述

Controller是JFinal核心类之一,该类作为MVC模式中的控制器。基于JFinal的Web应用的控制器需要继承该类。Controller是定义Action方法的地点,是组织Action的一种方式,一个Controller可以包含多个Action。Controller是线程安全的。

2 Action

2.1 Action定义

	在 Controller 之中定义的 public 方法称为Action。Action 是请求的最小单位。Action 方法必须在 Controller 中定义,且必须是 public 可见性。
public class HelloController extends Controller {
    public void index() {
       renderText("此方法是一个action");
    }
    public String test() {
       return "index.html";
    }
}
	以上代码中定义了两个Action:HelloController.index()、HelloController.test()。
	Action可以有返回值,返回值可在拦截器中通过invocation.getReturnValue() 获取到,以便进行render控制。

2.2 @NotAction 注解

如果希望 controller 中的 public 方法不成为一个 action,可以使用 @NotAction 注解。@NotAction 注解通常用于引入了 BaseController 的中间 Controller,例如:

public class BaseController extends Controller {
   
   // 不希望成为 action,仅供子类调用,或拦截器中调用
   @NotAction
   public void getLoginUser() {
   
   }
}

2.3 控制器超类的路由映射

自 jfinal 3.6 开始,控制器超类中的所有方法默认不会被映射为 action。(也就是自 jfinal 3.6 版本开始上例中 BaseController 中的 @NotAction 默认已经不需要了,因为 BaseController 是你最终控制器 XxxController 的超类)

如果希望超类中的方法也被映射为 action 只需添加一行配置:
public void configRoute(Routes me) {
    me.setMappingSuperClass(true);
}

该功能属于性能优化,拥有大量路由的大型项目可加快启动速度。该配置如果配置在 “子Routes” 中,将只对该 “子Routes” 有效,例如:

public FrontRoutes extends Routes {
   public void config() {
      // 这里配置只对 FrontRoutes 下的路由有效,建议这样配置以提升性能
      setMappingSuperClass(true);
      
      add("/weixin", WeixinController.class);
   }
}

3 Action 参数注入

Action 参数注入是指为 action 方法传入参数,可以省去 getPara(…) 代码直接获得参数值,以下是代码示例:

public class ProjectController extends Controller {
    public void index(Project project) {
       project.save();
       render("index.html");
    }
}

由于本人实习期到了,过的真快。。。。。

jfinal就先不更新了,大家需要学习的可以去官网,很清晰写的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵小哥要冲啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值