JSF 中 action與actionListener的差異
JavaServer Face (JSF)中,執行網頁頁面上的元件(例如:點選連結h:commandLink, 點選按鈕h:commandButton, 偵測到元件內容onchange, onclick...等)有兩種觸發事件處理方式。 action eg: <h:commandButton value="submit" action="nextPage"> action的值作用在於指引到其他頁面,如上述所示,按下submit會跳轉到 nextPage.jsp中 action的內容也可以指到後端交由bean做些邏輯上的處裡,再回傳型態為字串的值來作跳轉頁面 eg: 頁面端 <h:commandButton value="submit" action="controller.goNext"> Bean端 public String goNext(){ ........ return "nextPage" } P.S 1.若回傳null或者method的型態為void將會停留在原先頁面 2.若有制定NavigationRule,字串部分可填入to-view-id actionListener actionListener則是呼叫到bean裡面的method,並且有傳入actionEvent物件。此項目只有負責處裡邏輯上的功能,並沒有頁面呼叫的功用。 eg: 頁面端 <h:commandButton value="submit" actionListener="controller.doSomething"> Bean端 public void doSomething(actionEvent e){ .... } 綜合比較 action: 有回傳值 可導頁 可做商業邏輯處裡 actionListener: 無回傳值 不可導頁 可以做商業邏輯 P.S 兩者可同時使用,也就表示在同一個動作中,至