多表查询后数据显示要怎么写,谢谢!

blob.png

这里查到的feedback对象在jsp页面el表达式不能直接点nickname出来,求解决

${feedback.nickname  }找不到nickname属性,这样的多表数据显示,应该怎么写呢?

评论区

andywei

2016-10-26 14:25

有没有朋友帮忙解答一下,谢谢哈~

JFinal

2016-10-26 15:18

首先要将数据传递到页面,然后才能获取:
setAttr("page", findPages(...));

andywei

2016-10-26 15:25

@JFinal setAttr传数据到前端了,其他属性可以显示,Feedback的model对象里面不包含nickname属性,这个属性是UserInfo这个model里面的。

matol

2016-10-26 16:03

你的Feedback模型中应该就没有nickname字段吧?

matol

2016-10-26 16:05

按照你的sql情况,最简单的办法就是在你的Feedback中新增nickname属性,就可以取得到的。

andywei

2016-10-26 16:11

@matol 是的,feedback里面没有nickname字段。这个字段是在UserInfo表里的,这里是关联查询了显示反馈人的昵称,像你说的增加nickname属性是一个方法,前端之所以没有显示也是因为没有get、set方法。 项目中 这样关联查询的sql还是很多,这样增加属性就把model的dao的类里面加很多额外属性了。感觉不是很好,不知有无较好解决方法~ 谢谢! @JFinal

matol

2016-10-26 16:40

@andywei 你的意思我理解。但是,这个主要是由于你的sql决定的,他不像HQL那样基于对象联合查询的。不过可以考虑写插件来提供解决。

JFinal

2016-10-26 21:10

@andywei 必然有最好的办法,使用如下的代码设置一下,jfinal 会去掉用 model.get(String) 方法,而不是 getter 方法:
ModelRecordElResolver.setResolveBeanAsModel(true)

在YourJFinalConfig 中的某个 config 方法中调用一次即可,记得搞定后回来反馈

andywei

2016-10-26 22:42

@JFinal 感谢帮忙解决,已加入这行代码设置,测试了可以输出任意IBean下面的属性了,谢谢!!会一如既往的支持JFinal:)

JFinal

2016-10-26 22:51

@andywei 以后像这种紧急的问题,用支付宝捐助一下,我就能收到一条手机短信,就会来社区登记支付宝捐助者,就能看到社区的提问了,事情太多,有时候得半天才看看社区动态

JFinal

2016-10-26 22:52

@andywei 这样不就可以早早把问题解决了么,哈哈

andywei

2016-10-26 23:52

@JFinal 是的平时都太忙,这样好,下次就捐助呼叫啦~已经关注很久了,2年前捐助过一次 哈哈哈:)

JFinal

2016-10-27 00:03

@andywei 刚刚支付宝是你捐助的吧? 感谢你的支持,社区会提供越来越好的资源分享出来

andywei

2016-10-27 00:07

@JFinal 支持JFinal,刚捐助啦,哈哈哈,希望框架越来越好,不知道你们有微信群没,想加入,两年前使用的时候感觉很好用,当时对对象属性的操作不是很方便,需要写很多字符串属性名,于是自己就写了一个类似新版本里面自带生存Model的这样一个Gen类,前几个月用新版本看到已经带了,太赞了。我之前实现的提供get、set方法思路参考了Python的对象操作方法,可以连续set及crud操作,可以一直点点点的操作:),会不会太不正经~!! 还有很多想法,没有找到组织~~ 晚安啦~

JFinal

2016-10-27 00:20

@andywei jfinal 2.3 会让生成器支持你要的需求一直点点点的操作,即便是现在,你也可以通过继承 BaseModelGenerator 来扩展出这个功能来,微信群现在还没有,建议先加下微信公众号,晚安

zempty

2016-10-27 11:09

好,mark,以后翻阅。

JFinal

2016-10-27 11:15

@zempty 可以点击文章右下角的收藏按钮,方便以后在个人空间直接查看

zempty

2016-10-27 11:36

坚强的地瓜

2016-10-27 13:27

@JFinal 我按照增加那个方法之后,报这个错误,Error:(55, 30) java: 无法访问javax.el.ELResolver 找不到javax.el.ELResolver的类文件是怎么回事呢?

JFinal

2016-10-27 14:56

@坚强的地瓜 升级到 jfinal 2.2 版本即可,老版本没有这个功能

坚强的地瓜

2016-10-27 15:05

@JFinal 我用的jar包就是 jifnla-2.2-bin啊

坚强的地瓜

2016-10-27 16:23

我解决了,加一下apache下边的el-api.jar就可以了

JFinal

2016-10-27 21:30

@坚强的地瓜 这种情况是缺少 jstl 支持的 jar 包

andywei

2016-10-28 16:46

大家用了ModelRecordElResolver.setResolveBeanAsModel(true) 这个设置的朋友,要注意一个点了,就是之前在el表达式里面输出字段写骆驼命名写法的,加了这个配置后,页面所有骆驼命名写法属性名都要改成数据库字段名了,我加了这个,不知道要改几多页面显示了,思考。。。怎解。。。

JFinal

2016-10-28 17:28

@andywei 因为这个配置就是通过字段名去取的值,所以最好的办法是将数据表字段也用驼峰命名,这样所有全部都统一了,三年前就已经采用这种方式为字段命名了,极爽

热门反馈

扫码入社