网易云课堂“JFinal快速入门与开发实战”里面,按照步骤敲代码,调试出错

image.png

该类源码如下:

(其他代码无法上传)

package co.jschool.demo.controller;

import co.jschool.demo.model.User;
import com.jfinal.core.Controller;

import java.util.List;

public class UserController extends Controller {

    public void list()
    {
        List<User> list = User.dao.findAll();
        renderJson(list);
    }

}


评论区

JFinal

2020-11-15 18:03

一般是两种情况:
1: User 没映射
2: ActiveRecordPlugin 没有启动,或启动出了问题

jfinalaccount

2020-11-15 18:06

在MappingKit里面有映射“public class _MappingKit {

public static void mapping(ActiveRecordPlugin arp) {
arp.addMapping("user", "id", User.class);
}
}”

jfinalaccount

2020-11-15 18:07

ActiveRecordPlugin 没有启动,或启动出了问题

整个如何判断?我是按照视频一步步操作的。

JFinal

2020-11-15 18:11

在 arp.addMapping("user", "id", User.class); 这行代码之前设置一个断点,单步调试一下,看程序走没走这里

在 me.add(arp); 这一行前面也照此办法,看程序走没走

JFinal

2020-11-15 18:12

最后,一定不要在 Controller 中使用 dao,也不要有 sql , 要有 Service 层

下载 jfinal_demo_for_maven, 源码里头有注释说明这些事情

jfinalaccount

2020-11-15 18:16

好的,我试试,视频里面我看就是直接在controller里面调用了dao:
public void list()
{
List list = User.dao.findAll();
renderJson(list);
}

我按照建议来设置断点。

jfinalaccount

2020-11-15 18:29

我发现启动时候:me.add(arp)是有效的,但arp.addMapping("user", "id", User.class); 没有走,这个不符合预期,是否要把controller里面dao去掉?

在我访问:http://localhost/user/list 时候,两个断点都没有走,这一步估计没问题。

以下是我的controller:
public class UserController extends Controller {

public void list()
{
List list = User.dao.findAll();
renderJson(list);
}

}

jfinalaccount

2020-11-15 20:06

已经解决了,更新了JFinal版本到4.9.01,另外controller中,不再引用dao,放到service中调用。

热门反馈

扫码入社