比较freemarker中的两个字符串

时间:2013-12-17 12:49:05

标签: freemarker

我正在使用自由标记,我正在从应用程序返回响应作为字符串我需要将响应与静态某些字符串进行比较。这是做的方式。 ${users.isValid}它返回“true”但我无法将此变量与我的变量进行比较。我正在使用的代码是:

<#if ${parameters.isvalid}>
这是有效的数据
<#else>
它是无效数据
</#if>

提前感谢有什么方法可以解决这个问题。

3 个答案:

答案 0 :(得分:16)

我使用以下语法来比较freemarker中的两个字符串值。

<#if parameters.isvalid == "true">

答案 1 :(得分:0)

//if isvalid is a string variable...
<#if parameters?? && parameters.isvalid?? && parameters.isvalid="true">
     blah blah
<#else>
     lah lah
</#if>

//if isvalid is a boolean variable...
<#if parameters?? && parameters.isvalid?? && parameters.isvalid=true>
     blah blah
<#else>
     lah lah
</#if>

See the deails

答案 2 :(得分:0)

在freemarker模板中,不能在if语句内使用插值。 在不需要/不应该/不能使用插值的地方使用插值是一个常见的错误。插值仅适用于文本部分(例如<h1>Hello ${name}!</h1>)和字符串文字(例如<#include "/footer/${company}.html">)。

典型的错误用法为<#if ${big}>...</#if>,这将产生语法错误。您应该只写<#if big>...</#if>。另外,<#if "${big}">...</#if>是错误的,因为它将参数值转换为字符串,并且if指令需要布尔值,所以将导致运行时错误。