2012-08-31 2 views
7

나는 실행 아약스 호출이 두 가지 방법의 차이점이 무엇인지 궁금 :JSF의 F : 명령 단추 행동 대 아약스 청취자

<h:commandButton value="Submit" action="#{bean.action}"> 
    <f:ajax execute="@form" render="component"/> 
</h:commandButton> 

그리고 사람들이 처음 사용하는 것이 나타납니다

<h:commandButton value="Submit"> 
    <f:ajax listener="#{bean.action}" execute="@form" render="component"/> 
</h:commandButton> 

그러나 두 번째는 잘 작동하는 것 같습니다.

답변

13

첫 번째 방법은 String 결과를 반환하고 두 번째 방법은 결과를 반환하여 탐색을 허용합니다. 두 번째 방법은 클라이언트가 JS를 사용할 수없는 경우 아무 것도 호출하지 않고 첫 번째 방법은 gracefully degrades입니다. 사실 첫 번째 방법이 더 자주 사용됩니다.

두 번째 방법은 <h:selectOneMenu>과 같은 action 특성이없는 구성 요소의 유일한 방법입니다.