我看到幾個問題,詢問如何將參數傳遞給JSF方法。使用EL2.2和servlet 3.0,它使用戶可以將參數傳遞給方法調用。 一個例子:How to pass an argument to method from rendered h:outputText?問題是:在JSF 2.x中,每個標籤屬性都應該採用ValueExpression或MethodExpression。在鏈接的例子中,「渲染」應該只採用ValueExpression。但是我確實看到它仍然適用於MethodExpression,如果我們把()清除它是一個方法調用而不是一個屬性。這是JSF 2.x規範剛剛搞砸了還是我錯過了什麼?爲什麼EL 2.2的JSF 2.x允許MethodExpression用於ValueExpression?
2
A
回答
1
在值表達式中使用新的EL 2.2 invoking-methods-with-arguments語法不會自動使其成爲方法表達式或其他東西。這仍然是一個價值表達。值表達式使用給定EL表達式的返回值作爲值。方法表達式在與組件關聯的動作事件時調用給定的EL表達式。
EL表達式本身是否調用屬性getter方法或具有參數的任意方法對於如何處理整個EL表達式無關緊要。
相關問題
- 1. JSF 2.2中的EL表達式
- 2. 爲什麼Java允許int x []和int [] x?
- 3. %爲什麼不允許
- 4. 爲什麼kibana 3.x不適用於彈性搜索2.x?
- 5. Spring EL&JSF
- 6. 爲什麼Point允許你直接訪問x和y?
- 7. 爲什麼動態創建的JSF EL值表達式未解析?
- 8. 爲什麼允許空的wchar_t文字?
- 9. Java關鍵字不允許作爲EL標識符
- 10. JSF ValidateRegex允許換行
- 11. 爲什麼不允許在OpenMP中共享類成員變量x(x)?
- 12. 爲什麼Angular(1.x)允許模塊的依賴引用其組件?
- 13. JSF 2 Composote組件EL問題
- 14. JSF - 與EL
- 15. 爲什麼`dict_display`允許重複鍵?
- 16. 爲什麼sfinae如果constexpr不允許?
- 17. 爲什麼允許修改argv [0]?
- 18. 爲什麼Ruby 1.9允許覆蓋! !=!〜?
- 19. 爲什麼瀏覽器允許CSRF?
- 20. 爲什麼Swift允許雙選項?
- 21. 爲什麼filter_var($ email,FILTER_VALIDATE_EMAIL)允許test @ test?
- 22. 爲什麼socketpair()允許SOCK_DGRAM類型?
- 23. 爲什麼T-SQL允許null和 'NULL'
- 24. 爲什麼CalendarProvider不允許寫入ExtendedProperties?
- 25. 爲什麼Delegate.CreateDelegate允許無效轉換?
- 26. 爲什麼PHP不允許比較?
- 27. JSF EL條件
- 28. 爲什麼Promise.all()允許非Promise對象?
- 29. 爲什麼java允許這樣做?
- 30. 爲什麼a,b = 1不允許?
BalusC,非常感謝您的快速回復。我喜歡你的JSF博客,它對我有很大的幫助。你的回答是有道理的。但是我仍然有困惑。使用EL的技術(例如JSF 2.x)決定EL是否被視爲ValueExpression或MethodExpression。因此,如果對於JSF操作屬性,我使用action =「aBean.aMethod()」,如果aMethod返回文字字符串「aBean.action」,那麼您是否說在aBean中的操作方法將被調用? EL表達式中的聲音總是在JSF的機制之前首先被調用,如果我們在EL中有(),那麼它將使用getter而不是調用方法。 – 2012-04-18 13:42:50
不,它是以每個屬性爲基礎來決定的標籤處理程序。您可以在[標籤文檔](http://docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/facelets/)中看到它的處理方式(選中「類型」列,例如[ 'H:commandButton'](http://docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/facelets/h/commandButton.html))。這不依賴於EL語法。 – BalusC 2012-04-18 13:44:16
同意,標籤處理程序決定。但標籤處理程序來自JSF實現。所以這是JSF決定的。我剛剛修改了這些意見。如果你有時間,你能詳細說明一下嗎?謝謝。 – 2012-04-18 13:49:48