分享一个自己写的JFinal的BaseController (1)
2014-02-27 11:24
323 查看
以前用struts的时候自己就写了一个BaseAction
所以用JFinal的时候也写了一个BaseController
希望对大家有所帮助,让JFinal保持大道至简
}
/**
* 通用新增
*
* @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()
+ "");
}
}[/code]
然后你的Controller只需要继承BaseController
就自动有了BaseController的所有方法的,需要在构造方法里把Mode的class映射进去
Controller的代码如下
权限之类的就需要你自己处理过滤了,过滤也非常方便的。
代码写得不好的地方请大家给予纠正。
@JFinal
所以用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() { [code]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()
+ "");
}
}[/code]
然后你的Controller只需要继承BaseController
就自动有了BaseController的所有方法的,需要在构造方法里把Mode的class映射进去
Controller的代码如下
public class CardController extends BaseController { public CardController() { setClazz(Card.class); } }
权限之类的就需要你自己处理过滤了,过滤也非常方便的。
代码写得不好的地方请大家给予纠正。
@JFinal
相关文章推荐
- 分享一个自己写的JFinal的BaseController (3)
- 分享一个自己写的JFinal的BaseController (3)
- 分享一个自己写的JFinal的BaseController (1)
- 分享一个自己写的JFinal的BaseController (2)
- 分享一个自己写的JFinal的BaseController (2)
- 职场分享:打造一个与众不同的自己
- 分享自己编写的一个jquery日历控件,可以选择日期区间
- 分享一个自己写的简单的自动更新插件
- 自己最近做的一个关于自动进入飞行模式的经验分享
- 分享自己做的一个简单的查询表达式模拟(ESQL,Linq)(3)
- 分享一个自己写的俄罗斯方块。。。QT C++
- 分享一个自己写的PHP CONFIG类
- 做了五年的程序员啦,从今天开始,没解决一个问题,坚持把思路整理出来,发布到网上分享,对自己对他人都有益处
- 分享一个小巧简单的基金查询工具(自己写的)
- 分享自己写的一个贪吃蛇的游戏(Linux)
- 分享自己做的一个简单的查询表达式模拟(ESQL,Linq)(3)
- 分享自己的一个小数据库“Bug”
- 分享一个自己做的一个3DM手机客户端
- 分享一个自己做的用于文本插入的jquery插件
- 自己写一个第三方分享库(一)