2015-07-10 2 views
0

Я пытаюсь использовать список отраслей для определения выходного текста. Например, если отрасль является дистрибутивом & Опция OR eCommerce OR Manufacturing отображает некоторый текст, иначе отображает другой текст.Как использовать список строк в Freemarker

У меня возникли некоторые проблемы со следующим кодом:

<#if (customer.custentity_esc_industry)=["Distribution \a Wholesale","eCommerce","Manufacturing"]>some text<#else>some other text</#if> 

Однако я не могу заставить его работать правильно ... Есть идеи?

ответ

0
<#if ["Distribution \a Wholesale", "eCommerce", "Manufacturing"] 
     ?seq_contains(customer.custentity_esc_industry)> 
    some text 
<#else> 
    some other text 
</#if> 

или даже (?then требует 2.3.23):

${["Distribution \a Wholesale", "eCommerce", "Manufacturing"] 
    ?seq_contains(customer.custentity_esc_industry) 
    ?then("some text", "some other text")} 
+0

Благодаря оба ваши решения на имя моей проблемы. По какой-то причине у меня все еще возникают проблемы с амперсандами, но все остальное хорошо. – particlepat

+0

Это работает для меня с '\ a'. Но в любом случае вы можете напрямую писать '&'. Это не особый символ внутри строковых литералов FTL. – ddekany

0

Вы можете сделать что-то вроде этого:

<#assign sequence = ["Distribution \a Wholesale","eCommerce","Manufacturing"] /> 
<#assign flag = 0 /> 
<#list sequence as seq> 
    <#if customer.custentity_esc_industry == seq> 
      <#assign flag =1> 
      <#break /> 
    </#if> 
</#list> 
<#if flag == 1> 
    //some text 
<#else> 
    //some other text 
</#if>