我是StringTemplate模板引擎的新手,想要用它来生成带有表的html文档。我想根据它是奇数还是偶数来改变表行的样式。我找到了关于stringtemplate-interest邮件列表的讨论,该列表描述了一般方法([stringtemplate-interest] Odd even row formatting)。
但我有一个额外的要求,打破了这种一般方法(我认为)。我想根据值的存在来渲染行。所以我正在使用条件表达式$if(expr)$
。我的模板看起来像这样。
delimiters „$“,“$“
htmlTable(valueA, valueB, valueC, valueD) ::= <<
<table>
<tr styleClass='odd'><td>$valueA$</td></tr>
$if(valueB)$
<tr><td>$valueB$</td></tr>
$endif$
<tr styleClass='odd'><td>$valueC$</td></tr>
<tr><td>$valueD$</td></tr>
</table>
>>
在给定的模板中,我不能使用硬编码的styleClass属性,因为如果valueB参数不存在,它会使表格错误。
我的要求是否可以通过像StringTemplate这样的模板引擎实现,它专注于模型和视图的分离?或者在需求中是否有太多 model 在视图中实现它?我知道如何在其他模板引擎(即FreeMarker或Apache Velocity)中执行此操作,或者我可能会使用一些fancy CSS或javascript的东西,但我宁愿保持模型 - 视图分离并使用StringTemplates内部工具。