Freemarker中能否将一个模板的输出传递给另一个模板?
问题解答
可以实现将第一个模板的输出(SQL语句)执行后得到的数据传递给第二个模板使用,但需要遵循正确的执行流程,同时修正第二个模板的语法问题:
- 第一步:渲染第一个模板,生成完整SQL语句:
select count(*) as row_count from table - 第二步:执行这条SQL语句,从数据库获取
row_count的实际值(注意:count(*)的结果永远≥0,通常是等于0时表示无数据) - 第三步:将获取到的
row_count值作为数据模型,传入第二个模板完成渲染
另外,你的第二个模板存在两处语法问题,修正后示例如下:
<#if row_count == 0> No data </#if>
修正点说明:
- Freemarker的
<#if>标签内直接使用变量名即可,无需添加${} - 原模板缺少标签闭合的
>,且判断条件不符合count(*)的结果逻辑(应判断是否等于0而非小于0)
内容的提问来源于stack exchange,提问作者Giby Thomas
相关产品推荐
相关产品推荐

