2015-07-28 66 views
1

我使用freemarker的检查两个字符串是否相等。检查两个字符串是在FreeMarker的平等,一个字符串包含&符号

<#if vm == 'O&M VMs'>  
    <td width="189" rowspan="9"><p align="center">${vm}</p></td> 
</#if> 

我敢肯定,${vm}'O&M VMs',但它并没有进入如果块。如果没有&符号,则字符串比较有效,但我需要保留&。我试图将其更改为&amp;,例如<#if vm == 'O&amp;M VMs'>,但仍无法正常工作。 任何人都可以帮助我吗?谢谢。

+0

没有什么特别的'&'在一个字符串字面FreeMarker的。我怀疑在FreeMarker获得它之前,其他工具会扭曲模板。 (你可以在http://freemarker-online.kenshoo.com/上试试它;这就是它的工作原理。)或者,也许它是'vm'的值,即模板被预先转义或者其他东西。如果你比较'O \ aam; M VMs''怎么办? – ddekany

回答

0

尝试<#if vm == 'O\aM VMs'>... - \a是&符号的转义序列(请参阅http://freemarker.org/docs/dgui_template_exp.html#dgui_template_exp_direct_string)。

+0

谢谢,约瑟夫,我试图'的<#if VM == 'O \ AM的VM'>'为好,仍然没有工作 – Xiang

+0

奇怪。我刚刚在本地进行了测试,如果我的变量包含'Foo&bar'',那么''#if myVar =='Foo&bar'>''和'<#if myVar =='Foo \ bar '>'工作。你使用哪个版本的Freemarker(我的是2.3.21)?它是纯粹的Freemarker(作为servlet)还是更多的(Spring,Liferay,...)? –

+0

我的Freemarker版本是2.3.18,我使用Freemarker + Flying-saucer + Itext生成PDF文件,一切正常,问题来了,只有字符串中有&。 – Xiang

相关问题