在CommonTemplate([url]http://www.commontemplate.org[/url])中,
内嵌模板指令 $inline{"xxx.ctl"} 相当于JSP中的 <%@include file="xxx.jsp"%>
包含模板指令 $include{"xxx.ctl"} 相当于JSP中的 <jsp:include page="xxx.jsp"/>
当a模板内嵌(或包含)b模板,同时b模板又内嵌(或包含)a模板,也有可能不只两个模板,只要形成环路,就会出现死循环。
内嵌模板时,因为共享上下文,可以通过查找已有的包含路径来检测循环,及时抛错(0.7.1以后版本已加入检测)。
但包含模板时,因为只包含输出(在不同的上下文运行),无法获取更多信息,死循环比较难检测,结果会出错内容爆炸。
还没想到好的解决方案...
btw: 不知jsp:include是否存在同样的问题?
内嵌模板指令 $inline{"xxx.ctl"} 相当于JSP中的 <%@include file="xxx.jsp"%>
包含模板指令 $include{"xxx.ctl"} 相当于JSP中的 <jsp:include page="xxx.jsp"/>
当a模板内嵌(或包含)b模板,同时b模板又内嵌(或包含)a模板,也有可能不只两个模板,只要形成环路,就会出现死循环。
内嵌模板时,因为共享上下文,可以通过查找已有的包含路径来检测循环,及时抛错(0.7.1以后版本已加入检测)。
但包含模板时,因为只包含输出(在不同的上下文运行),无法获取更多信息,死循环比较难检测,结果会出错内容爆炸。
还没想到好的解决方案...
btw: 不知jsp:include是否存在同样的问题?