2014-03-26 16 views
1

由於@BalusC在這裏指出How to pass an iterated parameter via ajax to a backing bean method,所以可以在EL中傳遞整個對象作爲參數。JSF:傳遞整個對象作爲EL中的參數是標準的嗎?

在JSF2中,使用action=#{bean.method(object)}的作品,但我不明白怎麼樣。 JSF (JSF doc)的各種版本的

之證件說,這對action attrubute:

的表達式必須不帶任何參數

那麼,爲什麼action=#{bean.method(object)}作品的公共方法? 是否可以使用這種技術,或者它在未來的版本中無法使用?

編輯

此外,作爲@瓦西里 - lukach說,EL的文件允許的話。事實上,在(EL doc)說,EL2.2,可以使用:

<h:commandButton action="#{trader.buy('SOMESTOCK')}" value="buy"/> 

是這兩個規格一致?

+1

它不適用於JSF2,但適用於EL2.2。試用JSF 2.1和EL2.1,你會看到錯誤。 –

+0

謝謝@VasilLukach。在EL2.2 http://docs.oracle.com/javaee/6/tutorial/doc/bnahu.html#gjhbz中,他們甚至在'action'中使用參數化調用的示例。那麼這兩個標準是一致的嗎? –

回答

1

有兩種版本的方法被調用。如果EL表達式根本不包含任何參數,則首先被調用。在這種情況下,被調用的方法確實不能有任何參數。在actionListener的情況下,它必須具有完全規定的事件參數。

如果您提供了參數,那麼這些參數將由EL實現本身綁定,並且與這些參數對應的bean中的方法將被調用。在這種情況下,JSF自身提供的任何參數(如事件實例)都會丟失。

相關問題