2011-11-14 16 views
0

一個奇怪的問題,只有我的機器上的Grails 1.2.4 occourse ....的Grails:OUT與回報

我們使用可以通過服務從AppContext gspTagLibraryLookup豆訪問的自定義標籤庫。

在我的本地機器

<my:span value="abc" title="${my.write(text:'123')}"/> 

寫道:

123<span title="">abc</span> <!-- what i see --> 
    <span title="123">abc</span> <!-- what my collegue see --> 

我:寫被蔑視爲:

def write = {out << attrs.text} 

但是:如果我使用的回報,而不是出來, html生成我的同事看到的東西。

任何人都知道區別?

回答

0

title屬性的參數值在傳遞給<my:span>之前進行評估。所以,如果你定義write{out << attrs.text},並在<my:span>使用它時,write功能會寫span功能確實給out之前,並返回任何結果 - 所以123<span>之前被寫入到輸出,title屬性將是空的。

如果定義write{return attrs.text},其評價不會寫任何東西出來,並返回123將被插入爲title屬性的值。

不確定爲什麼第一個定義適用於您的同事的機器。

+0

那是我以爲...但是住,測試和3個同事使用*出來<< *沒有問題.....(可能配置問題...) –

+0

與國有企業和NPE的有線問題。猜猜它是正確的答案。 –