Freemarker在我的fo:table-body外部动态引用标签

时间:2018-07-16 09:18:31

标签: freemarker xsl-fo

我无法向您展示全部代码,但是以下基本上是我在fo-table-body标签内生成动态代码所采取的步骤。

<fo:table-body>内部的某个阶段,我希望能够引用名为“ ref”的块并从中向外更改if的值。这可能吗?

<#assign value="Hello World"/>
<fo:block name"ref">
      <fo:inline font-weight="bold">Value: </fo:inline>
      <fo:inline>${Value}</fo:inline>
    </fo:block>
    <fo:table-body start-indent="0pt">
    // All sorts of data inside the tags 
         <fo:table-row>
            <fo:table-cell></fo:table-cell>
         </fo:table-row> 
   </fo:table-body>

1 个答案:

答案 0 :(得分:0)

FreeMarker模板在执行时会不断写入输出,因此,如果您已经打印了一段输出,那么它就不再在FreeMarker手中。 (它可能仍位于Writer后面的某个缓冲区中,但是FreeMarker对此并不了解。)您可以做的是先生成依赖项部分(fo:table-body),然后捕获它而不是它像<#assign tableBody><fo:table-body...>...</fo:table-body></#assign>一样打印它,然后照常生成依赖部分(fo:block),然后打印捕获的部分(${tableBody}<#noescape>${tableBody}</#noescape>,具体取决于哪种自动-使您转义)。