2017-06-30 12:10
@蜡笔小新 注意一下,如果配置了ModelRecordElResolver.setResolveBeanAsModel(true),那么 model 中的 getter 方法在 jstl 中将不会被调用,只会调用 model.get(String name)
要考虑这个配置是不是对以前的代码有影响,如果是老项目,建议在最终的 model 中添加个 getScore() 方法
2017-06-30 11:50
如果你的 Model 生成过 BaseModel,就会 implements IBean 这个接口,在ModelRecordElResolver 的方法中可知对于 IBean 的处理是调用其 getter 方法,但你的 model 并不存在 getScore() 这个方法,所以就会有异常
解决的办法是配置一下:
ModelRecordElResolver.setResolveBeanAsModel(true)
这样 jstl 处理 model 时会调用其 get(String attrName) 方法,而不会理会 getter 方法
如果希望这个处理更加智能,建议使用 jfinal template engine
2017-06-29 20:59
@aqiang setAttr(...) 传递的数据在 redirect(...) 以后会丢失,这个是由 redirect 机制决定的
redirect 机制会让浏览器一共发起两次请求,第一次请求过来以后,服务端响应一个redirect 并告知浏览器该重定向到哪个 url,浏览器收到 url 以后会再次发起一个新的请求
在浏览器发起第二次请求时,setAttr(...) 过来的数据就会丢失掉,所以需要想别的办法解决
2017-06-29 19:14
@aqiang 带个 true 参数就可以了:
redirect(url, true)