这是我的.xhtml文件中的代码,我在字段集下添加了此代码
index.xhtml
<p:fieldset legend="BPS Listener Method" toggleable="true" collapsed="#{bpsFrontBean.bpsListenerSwitch}" toggleSpeed="500" style="width: 920px;margin: 0 auto; text-align: left">
<p:ajax listener="#{bpsFrontBean.onToggleBpsListenerSwitch}" update="parametersGrid"/>
.........
</p:fieldset>
如果我在显示页面之前运行上面的代码,则会出现错误提示:
javax.faces.view.facelets.TagException: <p:ajax> Event attribute could not be determined: null
如果单击可切换的字段集,我想触发一个方法。
Primefaces用户指南(http://www.primefaces.org/showcase/ui/panel/fieldset.xhtml)的第205-206页说:
Ajax行为事件
toggle是默认行为,并且只有ajax行为字段集提供的事件,当内容为切换。如果您定义了一个侦听器,它将由调用传递org.primefaces.event.ToggleEvent的实例。
这里是一个添加面部消息并更新咆哮的示例切换字段集时使用组件。
<p:growld id="messages" />
<p:fieldset legend="Toggleable Fieldset" toggleable="true">
<p:ajax listener="#{bean.onToggle}" update="messages"/>
//content
</p:fieldset>
在豆子上:
public void onToggle(ToggleEvent event) {
Visibility visibility = event.getVisibility();
FacesMessage msg = new FacesMessage();
msg.setSummary("Fieldset " + event.getId() + " toggled");
msg.setDetail("Visibility: " + visibility);
FacesContext.getCurrentInstance().addMessage(null, msg);
}
您必须在event="toggle"
内添加p:ajax
才能消除错误:
<p:ajax event="toggle" listener="#{bpsFrontBean.onToggleBpsListenerSwitch}" update="parametersGrid"/>
很遗憾,当前文档中未提到这(PF 8)。