Java 使用freemarker(或任何其他模板引擎)处理多个嵌套模板

Java 使用freemarker(或任何其他模板引擎)处理多个嵌套模板,java,servlets,freemarker,Java,Servlets,Freemarker,我正在尝试使用FreeMarker编写一个使用servlet的复杂网页 该页面有3个基本组成部分:顶部的导航栏、左侧的广告栏和中间的主要内容部分。我有一个单独的servlet来绘制其中的每一个。每个servlet都只是大量生成一个html5部分,可能使用也可能不使用freemarker 当然,以上所有内容都在用freemarker模板化的主网页内 问题是这个。 主页的模板如下所示(为简单起见,分条): 您应该实现TemplateDirectiveModel以在Java中创建自定义指令(与FTL

我正在尝试使用FreeMarker编写一个使用servlet的复杂网页

该页面有3个基本组成部分:顶部的导航栏、左侧的广告栏和中间的主要内容部分。我有一个单独的servlet来绘制其中的每一个。每个servlet都只是大量生成一个html5部分,可能使用也可能不使用freemarker

当然,以上所有内容都在用freemarker模板化的主网页内

问题是这个。 主页的模板如下所示(为简单起见,分条):



您应该实现
TemplateDirectiveModel
以在Java中创建自定义指令(与FTL相反,即使用
#宏
)。当从模板(类似于
)调用时,它将接收一个
编写器
,您可以在其中写入任何内容。因此,当然,您可以包括其他servlet,或者执行Java中可以执行的任何操作。(支持嵌套的
Template.process
调用。)以
freemarker.ext.servlet.IncludePage
的源代码为例

<html>
  <body>
     <!--lots of stuff in between-->

     <section-nav> <!--this should be filled by output of NavServlet.respond -->

     <!--lots of stuff in between-->

     <section-content> <!-- this comes from arbitrary servlet for actual content -->

     <section-advertise> <!--this should be filled by output of AdvertiseServlet --> 

   </body>
</html