2017-02-24 11:30
@TonyWang 这样扩展也挺好,Controller.render(Render) 这个方法就是为这类场景设计的
是否要使用 "Cache-Control" 这个在最初的版本的确也纠结过,忘了当时做这个决定的关键原因了
2017-02-24 11:26
@qiushui90 不建议用 dialect 实现,因为你要的这个功能不属于 dialect 的功能范畴,项目在将来进化过程中,很可能忽视这里,造成问题
2017-02-24 10:59
@qiushui90 有很多解决方案,以下方案选择其一即可:
1:在自己的 model 中创建一个boolean filter(int type) 方法去实现,这个方法会被save()、update() 回调
2:在自己的 model 中创建 save()、update() 覆盖掉父类的方法实现功能,最后再添加一句:return super.save(); 或 return super.update()
3:自己建个 BaseModel,再扩展一下 BaseModelGenereator,多生成一下 save()、update()方法,在其中实现功能
2017-02-24 10:54
@qin 这里只是设置的代码,而这段代码中所依赖的 "encryptMessage" 依赖于你项目中的配置文件,前面所讲的“项目中配置也不启动加密”是指项目配置文件中的“encryptMessage”配置
2017-02-23 22:15
大部分情况下,客户端获取到的 json 数据是动态的,并不希望被浏览器缓存,所以 JsonRender 中添加了 "Cache-Control" 配置
解决的办法极其简单:
1:创建一个class MyJsonRender extends JsonRender,覆盖掉父类中的 render() 方法,去掉其中的 setHeader 调用
2:创建一个 class MyRenderFactory extends RenderFactory,覆盖掉其中的 getJsonRender() 方法,在方法体内使用 render new MyJsonRender(...)
3:在 configConstant(Constants me) 中通过 me.setRenderFactory(new MyRenderFactory()) 切换为自己的实现类
通过以上方法可以替换任何 Controller 中的 render 方法所依赖的实现类
2017-02-23 20:18
@rapin 在发布新版本后写新版本文档时发现了这个需求,在没有发行的版本已经支持了,放开了对 #p 指令参数类型的判断
以前对 #p 指令的参数类型判断严格是为了避免开发者传入错误的数据库类型造成错误,没注意到 #p(map.value) 这种需求的存在
2017-02-23 18:17
@Ferrari8899 value 不是属性值,只是个示例,你可以样:#(session.a.b.c.d.x.y.z)