首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
jfinal部署到tomcat下无法获取多表联合查询的字段值
455386896
2016-08-26 23:21
多表联合查询的字段值使用别名后,在页面用对象${obj.get("别名")}在使用jfinal自带运行下是正确获取数据的,但是部署到tomcat后就不行了,望大虾们讲解下
项目:
JFinal
评论区
455386896
2016-08-26 23:28
@JFinal
麻烦您帮我看看
回复
JFinal
2016-08-26 23:30
用的是 jsp 页面,还能 ${obj.get(...)} ? 应该是不行的
回复
JFinal
2016-08-26 23:44
@455386896
试试 ${obj.userName} 注意大小写与 sql 中的 as 别名一致
回复
455386896
2016-08-27 11:29
@JFinal
在eclipse下是可以这样取到值的,但是部署到tomcat下就不了,关键是那个字段本身不是这个对象所拥有的哦,是要其它表联合查询出来的值哦,你说的按别名一样取会报没这个字段哦。
回复
JFinal
2016-08-27 11:40
@455386896
是用的 jfinal 2.2 并且为 model 生成了 getter、setter 方法吧? 如果是这样的话,那么 ${obj.userName} 确实获取不到,因为 getUserName() 这个方法并不存在
回复
JFinal
2016-08-27 11:45
在项目启动的时候调用一下:ModelRecordElResolver.setResolveBeanAsModel(true) 这个方法,可以让 jfinal 绕过 getter 方法,转而调用内部的 attrs.get(key) 方法,然后界面使用: ${obj.userName} 即可
回复
455386896
2016-08-27 11:57
@JFinal
这样还是不行的,我刚刚想到你说getUserName是不存在的,我结果在那个对象中手动构建那个对象,然后在查询的时候别名成userName,在页面再使用${obj.userName} 即可获取数据,但是这样以后要是重新生产实体类的话,就麻烦点了
回复
455386896
2016-08-27 12:01
@JFinal
是用的 jfinal 2.2 并且为 model 生成了 getter、setter 方法的,现在问题就是多表查询后外表那些字段在jsp页面上不是很方便取值呀
回复
JFinal
2016-08-27 12:10
@455386896
前面说过了,用 ModelRecordElResolver.setResolveBeanAsModel(true) 可立即解决
回复
455386896
2016-08-27 12:17
@JFinal
用 ModelRecordElResolver.setResolveBeanAsModel(true) 在
public static void main(String[] args) {
ModelRecordElResolver.setResolveBeanAsModel(true);
JFinal.start("WebRoot", 8099, "/", 5);
}
是这样吗?但是还是不起效果,会报错不存在这个字段呢
回复
JFinal
2016-08-27 15:50
@455386896
在 public void afterJFinalStart() 中调用是最好的,注意看手册中的这个方法的用法。
此外,这样配置以后,一定要注意使用 ${obj.name} 的形式,而不能使用 ${obj.getName()}
回复
发送
我要反馈
热门反馈
扫码入社