2013-07-10 36 views
4

之間的區別我已經看到,並且使用了,但總是想知道

${foo.bar()} 

#{foo.bar()} 

兩個表達式之間的區別是在JUEL 。

任何線索?它很難谷歌「$」和「#」....

回答

3

功能上,${}只能做一個get,而#{}可以做一個get和一組值。

有關更多信息,請參閱Difference between JSP EL, JSF EL and Unified EL

閱讀JavaEE tutorial

使用$所有表達式{}語法會立即進行評估。這些表達式只能在模板文本中使用,或者只能用作可以接受運行時表達式的JSP標記屬性的值。 [...]即時評估表達式總是隻讀值表達式。上面顯示的表達式只能從cart bean獲得總價格;它不能設定總價格。

延遲評估表達式採用#{expr}的形式,並且可以在任何技術使用表達式定義的頁生命週期的其他階段進行評估。對於JavaServer Faces技術,其控制器可以根據表達式在頁面中的使用方式,在生命週期的不同階段評估表達式。

另請參閱此SO answer

+0

謝謝。我將自己的問題標記爲「重複」。 –