我正在处理 Apache Struts 2 中的问题WW-4145,以允许扩展用 FreeMarker 编写的 Struts 标签。问题是在已经解决了路径之后如何解决MultiTemplateLoader
路径。或者换句话说,提议的解决方案是否有效?
<#macro includeThemeTemplate templateName>
<#list parameters.themeHierarchy as theme>
<#attempt>
<#include "/${parameters.templateDir}/${theme}/${templateName}" />
<#break/>
<#recover>
</#attempt>
</#list>
<#-- Cause an exception intentionally which will have the top most theme -->
<#include "/${parameters.templateDir}/${parameters.themeHierarchy[0]}/${templateName}" />
</#macro>
和标签中的用法:
<@includeThemeTemplate "controlheader.ftl"/>
<#include "/${parameters.templateDir}/simple/checkboxlist.ftl" />
<@includeThemeTemplate "controlfooter.ftl"/>