viewpath 能动态改变吗?

  1. 能动态改变viewpath吗?比如通过拦截器。

背景:不同的角色登录后,render的html包路径不一样?vi

评论区

JFinal

2018-03-07 16:09

viewPath 配置本身不能动态改变,但你在 render 时,或者 render 完成以后都可以再改变其中的 view 参数值

而 view 参数就包含了 viewPath,所以就相当于可以动态改变 viewPath,只是方式不同

可乐加冰

2018-03-07 16:18

但是在拦截器中拿不到render对象,难道需要每次在controller的方法中改变view吗?这样有点麻烦了

JFinal

2018-03-07 16:28

@可乐加冰 在拦截器中很容易拿啊:
inv.invoke();
Render render = inv.getController().getRender();
if (render instanceof TemplateRender) {
...
} else {
...
}

Render 对象中还有直接操作 view 的方法,极度容易

可乐加冰

2018-03-07 19:43

@JFinal 明白了,谢谢

JFinal

2018-03-07 20:02

@可乐加冰 你还可以通过扩展 RenderFactory, 接管里头的 getRender 方法,完全控制 view 这个变量的规则

热门反馈

扫码入社