JsonRender的render() 方法中为什么设置response.setHeader("Cache-Control", "no-cache");
如何修改 response中 "Cache-Control" 的值,尝试了在拦截器中进行修改但是拦截修改后还是会被覆盖,因为render方法最后执行。
解决的办法极其简单:
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 方法所依赖的实现类