2013-05-13 16 views
1

我有一個jsff頁面上有50個不同的命令鏈接。我想獲得在後臺bean中單擊的命令鏈接?這個怎麼做?我只需要使用一個單一的方法在支持Bean獲取在adf中單擊的命令鏈接?

+0

爲什麼50個不同的鏈接調用相同的ActionListener?即使他們援引,所有50個鏈接的動作是否相同?如果操作不同,那麼您是否使用開關來處理要執行的操作?長遠來看,爲每個環節保持獨立的行動將有所幫助。 – MohamedSanaulla 2013-05-14 08:31:36

+0

所有50個鏈接都有相同的ActionListner。 ActionListner內部的邏輯取決於用戶點擊的CommandLink。 – 2013-05-15 01:18:01

回答

1

編寫一個監聽器,並在所有命令鏈接上調用相同的監聽器。聽衆Metod內部呼叫event.getAttributes()這將返回屬性的地圖。從地圖中,您可以找到用戶提交的鏈接的標識屬性。

1

只需裝一個ActionListener:

<af:commandLink text="Command link 1" actionListener="#{bean.link1}"/> 
<af:commandLink text="Command link 2" actionListener="#{bean.link2}"/> 
<af:commandLink text="Command link 3" actionListener="#{bean.link3}"/> 
... 

方法link1link2link3等是當你按下相應的命令鏈接調用,因此您隱知道哪個鏈接被按下。

+0

如果我有50個命令鏈接怎麼辦?你建議在bean中創建50個不同的方法嗎? – 2013-05-13 23:52:15

+1

如果50個命令鏈接執行不同的操作,那麼是的。如果他們都做同樣的操作,那麼爲什麼有50個鏈接?或者,如果50個鏈接執行相同的操作,但要在操作中使用的數據不同,則可以使用構面傳遞該值並檢索該屬性,如下所示:eventName.getComponent()。getAttributes() – MohamedSanaulla 2013-05-14 08:39:32

+0

這可能有所幫助。我來檢查一下。 – 2013-05-15 01:16:07

0

在backing bean中編寫一個監聽器,listener方法將以「ActionEvent」作爲參數。 ActionEvent有apis getSource(),getComponent(),可以利用它來獲取點擊的命令鏈接。