我在我的xhtml中有一個p:commandLink,並在「顯示」/「隱藏」之間切換值。 有沒有什麼方法可以從後臺bean獲取此命令鏈接的值? 我的意思是,我想知道命令鏈接當前顯示什麼值,即顯示/隱藏?如何從後臺bean獲取命令鏈接值(顯示名稱)?
0
A
回答
0
正如@BalusC的建議,你的方法不是一個好的解決方案。但是如果你真的想這樣做,你可以將組件(p:commandLink
)綁定到你的後臺,如What is the advantages of using binding attribute in JSF?所示。 組件綁定後,您可以訪問p:commandLink
中的value
屬性。
1
爲了這一點,調用部件只是在ActionEvent
參數可供選擇:
<h:commandLink id="show" value="Show it" actionListener="#{bean.toggle}" />
<h:commandLink id="hide" value="Hide it" actionListener="#{bean.toggle}" />
與
public void toggle(ActionEvent event) {
UIComponent component = event.getComponent();
String value = (String) component.getAttributes().get("value");
// ...
}
然而,這是一個糟糕的設計。可本地化的文本絕對不應該被用作業務邏輯的一部分。
相反,要麼鉤上部件ID:
String id = (String) component.getId();
或傳遞方法參數(EL 2.2 or JBoss EL required):
<h:commandLink id="show" value="Show it" actionListener="#{bean.toggle(true)}" />
<h:commandLink id="hide" value="Hide it" actionListener="#{bean.toggle(false)}" />
與
public void toggle(boolean show) {
this.show = show;
}
或甚至只是直接調用setter方法,而不需要額外的動作監聽器方法:
<h:commandLink id="show" value="Show it" actionListener="#{bean.setShow(true)}" />
<h:commandLink id="hide" value="Hide it" actionListener="#{bean.setShow(false)}" />
相關問題
- 1. 如何使用cURL命令獲取網頁的鏈接名稱
- 2. 如何獲取符號鏈接的名稱?一個命令的
- 3. 如何從鏈接獲取名稱?
- 4. 如何獲取鏈接名稱?
- 5. 如何從支持bean中獲取託管bean名稱?
- 6. 從命令提示符處獲取當前Windows域用戶的顯示名稱
- 7. 如何獲取DataAnnotation顯示名稱?
- 8. 如何從鏈接按鈕的點擊從gridview的命令參數獲取值?
- 9. Spring AOP。從JoinPoint獲取bean名稱
- 10. @Bean不按名稱獲取
- 11. 獲取顯示名稱從包ID
- 12. Firebase:從UID獲取顯示名稱
- 13. 從web.xml文件獲取顯示名稱
- 14. 顯示回顯區域中最後一個命令的名稱
- 15. 如何運行(不顯示命令提示窗口)汞柱在後臺命令?
- 16. 獲取顯示名稱javax.money.CurrencyUnit
- 17. 從數據庫獲取鏈接並顯示它(如Facebook鏈接)
- 18. 使用python從命令提示符命令獲取值
- 19. 獲取的ArrayList填充事件值從後臺bean
- 20. 從OrderedDictionary獲取名稱值
- 21. 從谷歌plus api獲取空白名稱(顯示名稱)
- 22. 顯示mailto鏈接到angularjs的名稱
- 23. 如何從oneall API獲取電子郵件和顯示名稱?
- 24. 在javascript中獲取URL鏈接名稱?
- 25. 如何從bean.xml中獲取bean值
- 26. 如何使用命令獲取牆紙名稱?
- 27. 如何從表中獲取顯示值?
- 28. 如何獲取後臺運行應用程序的名稱
- 29. 如何從python字符串獲取命名變量的名稱
- 30. SEAM從後臺bean
相反,你可以在commandLink方法調用中傳遞的參數。 –
如果您需要本地化您的web應用程序,並因此提供不同語言的按鈕標籤,如'value =「#{msg ['button.label']}」'?因此需要知道按鈕的值是絕對不是一個好的解決方案,因爲您必須考慮所有這些本地化值。如果多個按鈕調用相同的方法,我建議重新制定您的問題,而不是詢問如何區分按下的按鈕。 – BalusC
@ BalusC-我同意你和你正確理解我的要求。從命令鏈接我調用和actionListener方法,我想區分它是否目前顯示「顯示」/「隱藏」。因爲基於此,我必須向用戶顯示一個彈出對話框。例如如果它是「顯示」,我希望對話框來。但是,如果「隱藏」,我只想繞過調用此對話框的bean代碼.FYI,我從後端顯示對話框。是否有可能假設有沒有其他語言支持嗎? –