【问题标题】:Invoke multiple valuechangelistener jsf-1.2 richfaces调用多个 valuechangelistener jsf-1.2 richfaces
【发布时间】:2015-08-11 07:51:08
【问题描述】:

是否可以在 h:selectBooleanCheckbox 中调用多个 valueChangeListener 我正在尝试将一个值传递给两个 Bean。

这些豆子彼此不认识。而且注射不是一种选择。

【问题讨论】:

    标签: richfaces jsf-1.2


    【解决方案1】:

    我在这里找到了一种可能性: http://www.java-samples.com/showtutorial.php?tutorialid=606 和这里 http://www.pretechsol.com/2013/04/jsf-value-change-listener-example.html#.VcnZbPntlBc

    在某些情况下,您可能需要多个值更改侦听器或多个操作侦听器来响应事件。在这种情况下,您需要稍微不同的语法来将侦听器附加到 JSF 元素。 使用动作侦听器时,将值附加到更改侦听器或将动作侦听器附加到
    JSF 元素通过使用 valueChangeListener 或 actionListener 属性。使用属性语法时,您使用方法绑定表达式将方法绑定为侦听器。但是,这仅在附加单个侦听器时有效。

    当您需要附加多个侦听器时,有一个用于值更改侦听器的 JSF 标记和一个用于操作侦听器的标记,可用于将一个或多个侦听器附加到一个元素。使用标记语法时,您将指定一个实现侦听器接口的类。对于值更改侦听器,标记是 ,具有名为 type 的属性,该属性是侦听器的类名。监听器必须实现的接口是 javax.faces.event.ValueChangeListener。它有一个必须实现的方法:

    void processValueChangeEvent(ValueChangeEvent);
    

    因此,如果我们假设 FlightSearch 和 FlightTypes 类都实现了 ValueChangeListener,我们可以将它们都附加到这样的元素:

    <h:selectOneRadio layout="lineDirection" value="#{flight.tripType}" onclick="submit()" immediate="true"> 
       <f:valueChangeListener type="com.apress.projsp.FlightSearch"/> 
       <f:valueChangeListener type="com.apress.projsp.FlightTypes"/> 
       <f:selectItems value="#{types.tripTypes}"/> 
    </h:selectOneRadio>
    

    【讨论】:

      猜你喜欢
      • 2013-11-12
      • 1970-01-01
      • 2013-04-26
      • 2012-02-03
      • 2011-12-12
      • 2010-12-24
      • 2023-03-07
      • 2015-12-07
      • 2011-09-16
      相关资源
      最近更新 更多