分享一个自己写的JFinal的BaseController (1)

 

以前用struts的时候自己就写了一个BaseAction
所以用JFinal的时候也写了一个BaseController

希望对大家有所帮助,让JFinal保持大道至简

 

import com.jfinal.core.Controller;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
public class BaseController extends Controller {
 private Class<?> clazz; // 对应的实体
 public Class<?> getClazz() {
  return clazz;
 }
 public void setClazz(Class<?> clazz) {
  this.clazz = clazz;
 }
 /**
  * 通用分页查找
  */
 public void getByPage() {
  Page<Record> list = Db.paginate(getParaToInt("pageNumber"),
    getParaToInt("pageSize"), "select *", "from "
      + getClazz().getSimpleName() + " order by id desc");
  renderJson(list);
 }
 /**
  * 通用查找全部
  */
 public void getAll() {
  renderJson(Db.find("select * from " + getClazz().getSimpleName() + ";"));
 }
 /**
  * 通用根据id查找
  */
 public void getById() {
  renderJson(Db.findById(getClazz().getSimpleName(), getParaToInt("id")));
 }
 /**
  * 通用新增
  * 
  * @throws Exception
  */
 public void save() throws Exception {
  renderText(getModel(
    ((Model<?>) Class.forName(clazz.getName()).newInstance())
      .getClass()).save()
    + "");
 }
 /**
  * 通用修改
  * 
  * @throws Exception
  */
 public void update() throws Exception {
  renderText(getModel(
    ((Model<?>) Class.forName(clazz.getName()).newInstance())
      .getClass()).update()
    + "");
 }
 /**
  * 通用删除
  * 
  * @throws Exception
  */
 public void delete() throws Exception {
  renderText(getModel(
    ((Model<?>) Class.forName(clazz.getName()).newInstance())
      .getClass()).delete()
    + "");
 }
}

然后你的Controller只需要继承BaseController

就自动有了BaseController的所有方法的,需要在构造方法里把Mode的class映射进去

 

Controller的代码如下

public class CardController extends BaseController {
 public CardController() {
  setClazz(Card.class);
 }
}

 

权限之类的就需要你自己处理过滤了,过滤也非常方便的。

代码写得不好的地方请大家给予纠正。

 

 

经过@JFinal的评论提示

修改版的 BaseContorller 如下 :

 分享一个自己写的JFinal的BaseController (2)

 

 

转载于:https://my.oschina.net/hexin1/blog/203567

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值