我很好奇这两种执行ajax调用的方式有什么区别:
<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>
看来人们使用第一种方法的频率更高,但是第二种方法似乎也能正常工作…
第一种方法允许通过返回String结果进行导航,而第二种则不能。如果客户端禁用了JS,第二种方法将不会调用任何内容,而第一种方法会正常降级。确实,第一种方法被更频繁地使用。
String
第二种方法是组件中没有action属性的唯一方法,例如<h:selectOneMenu>等等。
action
<h:selectOneMenu>