博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分享一个自己写的JFinal的BaseController (1)
阅读量:7237 次
发布时间:2019-06-29

本文共 1909 字,大约阅读时间需要 6 分钟。

  hot3.png

 

以前用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
 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); }}

 

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

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

 

 

经过的评论提示

修改版的 BaseContorller 如下 :

 

 

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

你可能感兴趣的文章
启明星辰信息安全面试
查看>>
revit 2017下载(附注册码密钥)
查看>>
计算机相关
查看>>
Show/Hide Form Section by Name
查看>>
UI Macro - Get value of other variables
查看>>
百度打造人工智能正循环:使用者越多 机器越聪明
查看>>
linux第一波命令总结
查看>>
LINUX-centos7tomcat安装教程
查看>>
全新JAVA高级架构师项目实战 Springboot+MyBatis+RocketMQ
查看>>
年轻人应该如何培养毅力?
查看>>
MyBatis组件之缓存实现及使用
查看>>
OpenStack 应用调试
查看>>
英国正式启用首批5G服务
查看>>
判断一个字符串是否为另外一个字符串旋转之后的字符串。
查看>>
今天开始采用的十大大数据技术
查看>>
oracle教程之oralce非归档模式下的恢复(一)
查看>>
我的友情链接
查看>>
远程桌面,身份验证错误:要求的函数不正确等解决办法
查看>>
zookeeper分布式安装
查看>>
我的友情链接
查看>>