2017-07-27 60 views
0

我試圖訪問列表對象dfeNumber的當前索引的值,檢查它是否是此數字的第一個實例,並添加一個視覺休息。我之前從未在Freemarker工作過(主要是周圍的CSS),並且花了一些時間瀏覽Apache手冊,但是我找不到這種用法的例子。我認爲它看起來類似於:訪問在IF語句中使用的列表的特定索引值(Freemarker)

<#assign msaReached=0> 

<#list invName as invNames> 

<#if ${dfeNumber[invNames_index]} = "900"> 
    <#assign msaReached++> 
    <#if msaReached=1> 
    -- do stuff -- 
    </#if> 
</#if> 

任何人都可以指向我的情況下使用的語法的例子嗎?任何幫助將不勝感激。

回答

0

一些試驗和錯誤後,我意識到,我從來沒有使用過這種組合:

<#if dfeNumber[invNames_index] = "900"> 

哪些工作。

+1

'#if'的文檔說你需要在那裏放置一個「表達式評估爲布爾值」,然後還有一個關於表達式的章節。把它們放在一起,你就會得到這個,等等。另外,請勿使用舊的FreeMarker版本。有一段時間,你會得到這個錯誤消息,這會節省你的時間:'你已經在FreeMarker-expression-mode中,因此你不能使用「$ {」。因此,而不是$ {myExpression},只需寫myExpression即可。 ($ {...}只在需要其他靜態文本時才需要,即FreeMarker標籤和$ {...} - s之外)。 – ddekany

+1

對於未來的讀者,如果'dfeNumber [invNames_index]'是一個數字(與看起來像一個數字的字符串相反),那麼使用'= 900',不要使用'''。 canonical form,雖然'='在這裏也是爲了向後兼容而做同樣的工作) – ddekany

+0

謝謝你的澄清,在將日誌文件重定向到平面文件和使用控制檯之後,我能夠找到錯誤信息。什麼使我知道正確的語法。另外,感謝關​​於「==」的提示。 – MISMajorDeveloperAnyways