关于define指令输出变量

模板引擎里面的include指令或define指令,引入片段代码的时候,片段代码里面的变量是否可以通过指定某个Controller里面的某个method方法进行统一渲染呢?如果可以的话,应该怎么指定通过哪个Controller的哪个method方法呢?

比如指定head.html片段通过CommonController里面的head()渲染,这样所有的模板里面只需要加入一个include就行了

再比如6-4举例中的那个projectList,这个应该是在哪个Controller中的哪个method里面生成呢?还是就是在主模板所属的那个Controller的method里面?如果这样的话,岂不是如果所有的模板都include这个代码片段的时候,各个模板都要在自己的Controller的method方法里面定义这个projectList?

评论区

JFinal

2018-10-17 17:06

当你的模板中用到了 projectList, 那之前肯定是要为其传个值的,如果觉得在多个 controller 中传入 projectList 不方便,可以用一个拦截器,专干这个事:
public void intercept(Invocation inv) {
inv.getController().setAttr("projectList", ...);
inv.invoke();
}

dpdzq

2018-10-17 17:17

哦,理解了,多谢

热门反馈

扫码入社