12.22每日总结

今天一天都在做软件构造的实验

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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");
    }
}

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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());
    }
}

  

posted @   漏网鲨鱼  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示