Jfinal与Thymeleaf的集成问题
使用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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
魔方网表用户路过。也有HTML5模块。大家可以试试
哦哦,找到了setAttrs(CPI.getAttrs(demo)); 这样写就是和我上面注释的部分一个意思了 我说呢,model里的Map的方法不能直接调用,郁闷 不过这样还是没有demo.xxx这样友好,Thymeleaf里直接使用的是ognl的jar包,将Model判定为javaBean,去找属性对应的getter方法了,所以报错,看来只能这样了
回复
你还可以看看针对 JSTL 的解决方案: com.jfinal.plugin.activerecord.ModelRecordElResolver.java,相信任何模板都会有相应的接口供 model 读取方式的扩展
回复
setAttr("demo", CPI.getAttrs(demo));这样就彻底解决了,哈哈哈
回复
我参照你的方法也实现了,感谢感谢