关于嵌套路由,多重路由的问题。

(Engine me) {
   me.addSharedFunction()me.addSharedFunction()}
_layout.html是最大的页面,里面包含了bodyContent.html,同时bodyContent.html下面
又包含其他的页面。我要render最小的那个节点时,要一起渲染出他的父页面,祖父页面和祖
父父页面。我写了好多次都没写清楚。
是除了根页面之外的其他页面都要添加到configEngine中吗?


评论区

JFinal

2017-03-13 16:50

configEngine 中通常只需要使用 me.addSharedFuntion("xxx.html") 就可以了,该方法只有一个功能,就是将 xxx.html 中所有使用 #define 指令定义的“模板函数”添加为共享的模板函数

所谓共享地的模板函数是指,你在任何模板中都可以直接调用这些模板函数,如果你不使用 me.addSharedFunction(...) 来配置,那么想要调用这些模板函数,必须先使用 #include("xxx.html") 将之引入到当前模板之中,才可以调用

从你的问答中看出你并未理解 template function,不要把问题想复杂了,只需要注意如下几点:
1:将 me.addSharedFunction(xxx.html) 理解为在具体的模板中使用 #include(xxx.html) 添加所有 #define 指令定义的函数
2:使用 #define 定义的模板函数,可以想象成为 java 语言中定义的方法,方法有名称,有参数,方法之间可以互相调用

jfinal 模板引擎最重要的功能就是模板函数的定义与调用。其它的事情建议不要多想,再想很可能就想多了

Ferrari8899

2017-03-14 09:31

@JFinal 知道了。

Ferrari8899

2017-03-14 10:59

@JFinal #@layout()
#define main()


#include("/commonPage/navigation.html");



#@tbody3?()
#@tbody2?()
#@tbody1?()
#@tbody?()

#end
其中的
#@tbody3()的代码是:
#@layout()
#@main()
#define tbody3()




#@inner?()



#end

#@tbody() #@tbody1() #@tbody2()都是和 #@tbody3()类似的模板!里面还有子模板。
怎么无法完成跳转。

JFinal

2017-03-14 12:21

模板引擎只有渲染,没有跳转这个概念,千万不要混淆

此外,你上面的程序是先调用的 #@layout() 然后 layout 中调用了 main,main 中调用 tbody3, tbody3 中又调用了 layout 与 main,这已经形成了死循环,是混乱的,注意改进

热门反馈

扫码入社