2013-05-10 70 views
1

我遇到問題了,我不知道爲什麼會發生這種情況,我對OGNL很新穎...... 所以我有一個定義了一個tile的佈局,另一牌擴展了這種佈局,並把它用來表明該鍵的DB值的關鍵,讓我們說叫keyName,我想渲染使用OGNL像這樣的值:嵌套的OGNL表達式不會呈現

<s:label value="%{getText('%{keyName}')}"/> 

,但正顯示出keyName的值不是DB的值...,如果我嘗試硬編碼keyValue並且工作正常,例如:

<s:label value="%{getText('strWelcome')}"/> 

這顯示正確的關鍵strWelcome在數據庫中的值... 如何解決它的任何建議?

注:我試圖使用keyName像一個JSTL變量,但告訴我,我不能通過動態值getText()

回答

2

OGNL不會按照這種方式,無論是不是 OGNL表達式,你不要說「這是一個OGNL表達式」,然後在表達式內說:「哦,這是一個OGNL表達式「,你只需要做一次。

最終的結果是,這些很可能是正確的表述:

<s:label value="%{getText(keyName)}"/> 

是一個值的屬性我懷疑OGNL假定所以這應該工作

<s:label value="getText(keyName)"/> 

這假設變量是「keyName」在操作範圍內,如果它在不同的範圍內,您可能需要附加一個「#」或者您可以更具體,有關訪問不同範圍的詳細信息,請參閱:http://struts.apache.org/release/2.2.x/docs/ognl.html