加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

我可以调用多种方法吗?

发布时间:2020-12-16 02:51:45 所属栏目:百科 来源:网络整理
导读:我可以从监听器中的ajax事件选择中调用多个方法吗? p:tree value="#{ddTreeBean.root}" var="node" dynamic="true" selectionMode="single" selection="#{ddTreeBean.selectedNode}"p:ajax event="select" listener="#{data2.refresh}" update=":pchartId,:
我可以从监听器中的ajax事件选择中调用多个方法吗?

<p:tree value="#{ddTreeBean.root}" var="node" dynamic="true"
                selectionMode="single" selection="#{ddTreeBean.selectedNode}">

<p:ajax event="select" listener="#{data2.refresh}"
                    update=":pchartId,:panelId">
                    </p:ajax>
        <p:treeNode type="node" expandedIcon="folder-open"
                    collapsedIcon="folder-collapsed">
                    <h:outputText value="#{node.name}" />
                </p:treeNode>

                <p:treeNode type="leaf" icon="document-node">
                    <h:outputText value="#{node.name}" />
                </p:treeNode>
            </p:tree>

在一个选择我需要绑定我的监听器两个方法?
这是允许的吗?

我有一棵树,当我做出选择时,我需要更新(触发)两个组件(另外两个后面的bean).
listener属性是否有两个参数(两个方法名称)?
谢谢.

Myclass1 class {
 method1();
 }



Myclass2 class {
 method2();

 }

解决方法

如果要从另一个ManagedBean调用一个ManagedBean的方法,则必须注入另一个ManagedBean.

@ManagedBean
public class MyBean1{

   public void methodAbc(){
     ...
   }
}

注入

@ManagedBean
public class MyBean2{

   @ManagedProperty(value = "#{myBean1}")
   private MyBean1 mybean1;

   //SETTER GETTER for mybean1

   public void myAction(){
     mybean1.methodAbc();
   }
}

兼容的ManagedBean Injection范围在下表中给出(由Core Java Server Faces Book提供):

或者您可以按如下方式在Action方法本身中正确地解析EL表达式.

public void myAction(){
   FacesContext fctx = FacesContext.getCurrentInstance();
   MyBean1 mybean1 = fctx.getApplication().evaluateExpressionGet(fctx,"#{myBean1}",MyBean1.class);
   mybean1.methodAbc();
}

由于您使用的是Primefaces,因此还有一种方法可以使用p:remoteCommand:

<p:ajax event="select" listener="#{data2.refresh}"
        update=":pchartId,:panelId" 
        oncomplete="callRemote2()"/>

<p:remoteCommand name="callRemote" partialSubmit="true" process="@this" 
                 action="#{yourmanagedbean.method2}" />

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读