jsf - 单击 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 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 Behavior Events

toggle is the default and only ajax behavior event provided by fieldset that is processed when the content is toggled. In case you have a listener defined, it will be invoked by passing an instance of org.primefaces.event.ToggleEvent.

Here is an example that adds a facesmessage and updates growl component when fieldset is toggled.

<p:growld id="messages" />
<p:fieldset legend="Toggleable Fieldset" toggleable="true">
    <p:ajax listener="#{bean.onToggle}" update="messages"/>
    //content
</p:fieldset>

关于 bean :

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);
}

关于jsf - 单击 primefaces 中的字段集后如何调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32089760/

相关文章:

jsf - 在 taglib 中定义的自定义 Facelets 组件和属性

jsf - ajax 渲染后 commandButton 处于非事件状态

jsf - 请求的资源不可用

jsf - 用户界面为 :include 的无效路径

java - 在复合组件之间共享属性文件

css - 在特定 p 上应用 CSS :dataTable component instead of on all p:dataTable components

jsf - 我如何使用两个 uploadFile 组件?

Hibernate 无法关闭连接?

java - 如何使用 PrimeFaces 在 UI 上可视化图片

jsf - 具有可变列和特定可编辑单元格的 PrimeFaces 数据表