Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 单击primefaces中的字段集后如何调用方法?_Jsf_Jsf 2_Primefaces - Fatal编程技术网

Jsf 单击primefaces中的字段集后如何调用方法?

Jsf 单击primefaces中的字段集后如何调用方法?,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,这是我的.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 list

这是我的.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
javax.faces.view.facelets.TagException:无法确定事件属性:null

如果单击了toggleable字段集,我想触发一个方法

Primefaces用户指南()第205-206页说明:

Ajax行为事件

切换是默认的也是唯一的ajax行为 由字段集提供的事件,当内容 切换。如果您定义了一个侦听器,它将由 传递org.primefaces.event.ToggleEvent的实例

下面是一个添加facesmessage并更新咆哮的示例 切换字段集时的组件


您必须在
p:ajax
中添加
event=“toggle”
,以消除错误:

<p:ajax event="toggle" listener="#{bpsFrontBean.onToggleBpsListenerSwitch}" update="parametersGrid"/>


不幸的是,文档中目前没有提到这一点。

您使用的是什么版本的primefaces?发布了用户指南的参考信息谢谢jack先生,您好ASG3谢谢。您没有正确地关闭标记:
这里的xhtml与问题的相关方式有何不同?我想知道是哪一部分解决了OP的问题,并被接受为答案
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);
}
<p:ajax event="toggle" listener="#{bpsFrontBean.onToggleBpsListenerSwitch}" update="parametersGrid"/>