Jfinal与Thymeleaf的集成问题

发布于 2021-12-02 04:58:35 字数 847 浏览 805 评论 5

使用Jfinal作为后端框架,Thymeleaf作为模板引擎,现在发现传到后台的数据,取值有些问题,

我直接把一个Model类对象传到后台,比如:

public void get() {
        String id = getPara("id");
        Demo demo = Demo.dao.findById(id);
        log.debug("demo:{}", demo.toJson());
//        Set<Map.Entry<String, Object>> attrsEntrySet = demo.getAttrsEntrySet();
//        Map<String, Object> map = new HashMap<>();
//        attrsEntrySet.forEach(entry -> map.put(entry.getKey(), entry.getValue()));
//        setAttrs(map);
        setAttr("demo", demo);
        render("demo");
    }

这样传的话,页面上这样取

<td width="27%" th:text="${demo.get('USER_NAME')}"></td>

才能取到,太难看了,使用demo.USER_NAME才应该啊,但是取不到,是什么原因呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

沦落红尘 2021-12-03 18:45:52

魔方网表用户路过。也有HTML5模块。大家可以试试

倾城泪 2021-12-03 18:34:45

哦哦,找到了setAttrs(CPI.getAttrs(demo)); 这样写就是和我上面注释的部分一个意思了 我说呢,model里的Map的方法不能直接调用,郁闷 不过这样还是没有demo.xxx这样友好,Thymeleaf里直接使用的是ognl的jar包,将Model判定为javaBean,去找属性对应的getter方法了,所以报错,看来只能这样了

英雄似剑 2021-12-03 17:40:24

回复
你还可以看看针对 JSTL 的解决方案: com.jfinal.plugin.activerecord.ModelRecordElResolver.java,相信任何模板都会有相应的接口供 model 读取方式的扩展

兮颜 2021-12-03 17:25:02

回复
setAttr("demo", CPI.getAttrs(demo));这样就彻底解决了,哈哈哈

月牙弯弯 2021-12-03 15:27:52

回复
我参照你的方法也实现了,感谢感谢

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文