我有一个Freemarker模板,其中包含一组处理模板时为其提供值的占位符。我希望有条件地包括模板的一部分如果用户名变量提供,像:如何检查FreeMarker模板中是否存在变量?
[#if_exists userName]
Hi ${userName}, How are you?
[/#if_exists]
但是,FreeMarker的手册似乎表明if_exists已过时,但我不能找到另一种方式来实现这一目标。当然,我可以简单的提供一个额外的布尔变量isUserName和使用这样的:
[#if isUserName]
Hi ${userName}, How are you?
[/#if]
但是,如果有检查用户名是否存在,那么我能避免增加这一额外变量的方法。
如果有其他人被这个抛出,#if语法应该被小于和大于字符而不是括号包围。例如:<#if userName>> – Cameron 2010-03-17 18:23:39
它实际上可以使用这种语法,所以我只是遵循这个问题的语法: 请参阅http://freemarker.sourceforge.net/docs/dgui_misc_alternativesyntax.html – 2010-03-18 07:52:55
这只是检查var是否存在。但是,如果你在“userName”中有一个空字符串,那么<#if userName ??>将返回true!请参阅此页上的@ user1546081答案以解决此问题。 – 2013-01-15 10:22:46