今天一天都在做软件构造的实验
package com.demo.blog; import com.jfinal.aop.Before; import com.jfinal.aop.Inject; import com.jfinal.core.Controller; import com.jfinal.core.Path; import com.demo.common.model.Blog; /** * 本 demo 仅表达最为粗浅的 jfinal 用法,更为有价值的实用的企业级用法 * 详见 JFinal 俱乐部: https://jfinal.com/club * * 所有 sql 与业务逻辑写在 Service 中,不要放在 Model 中,更不 * 要放在 Controller 中,养成好习惯,有利于大型项目的开发与维护 */ @Path("/blog") @Before(BlogInterceptor.class) public class BlogController extends Controller { @Inject BlogService service; public void index() { setAttr("blogPage", service.paginate(getParaToInt(0, 1), 10)); render("blog.html"); } public void add() { } /** * save 与 update 的业务逻辑在实际应用中也应该放在 serivce 之中, * 并要对数据进正确性进行验证,在此仅为了偷懒 */ @Before(BlogValidator.class) public void save() { getBean(Blog.class).save(); redirect("/blog"); } public void edit() { setAttr("blog", service.findById(getParaToInt())); } /** * save 与 update 的业务逻辑在实际应用中也应该放在 serivce 之中, * 并要对数据进正确性进行验证,在此仅为了偷懒 */ @Before(BlogValidator.class) public void update() { getBean(Blog.class).update(); redirect("/blog"); } public void delete() { service.deleteById(getParaToInt()); redirect("/blog"); } }
package com.demo.blog; import com.jfinal.aop.Interceptor; import com.jfinal.aop.Invocation; /** * 本 demo 仅表达最为粗浅的 jfinal 用法,更为有价值的实用的企业级用法 * 详见 JFinal 俱乐部: https://jfinal.com/club * * BlogInterceptor * 此拦截器仅做为示例展示,在本 demo 中并不需要 */ public class BlogInterceptor implements Interceptor { public void intercept(Invocation inv) { System.out.println("Before invoking " + inv.getActionKey()); inv.invoke(); System.out.println("After invoking " + inv.getActionKey()); } }
标签:总结,12.22,每日,blog,void,jfinal,import,com,public From: https://www.cnblogs.com/louwangshayu/p/17922497.html