gpt4 book ai didi

ajax - 我可以从

调用多个方法吗?

转载 作者:行者123 更新时间:2023-12-03 01:37:31 26 4
gpt4 key购买 nike

我可以从监听器中的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>

在选择上我需要将监听器绑定(bind)到两个方法?允许吗?

我有一棵树,当我做出选择时,我需要更新(触发)两个组件(另外两个后置 bean)。监听器属性是否采用两个参数(两个方法名称)?谢谢。

Myclass1 class {
method1();
}



Myclass2 class {
method2();

}

最佳答案

如果你想从一个 ManagedBean 调用另一个 ManagedBean 的方法,你必须注入(inject)另一个 ManagedBean。

@ManagedBean
public class MyBean1{

public void methodAbc(){
...
}
}

注入(inject)到

@ManagedBean
public class MyBean2{

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

//SETTER GETTER for mybean1

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

下表给出了兼容的 ManagedBean 注入(inject)范围(由 Core Java Server Faces Book 提供): enter image description here

或者您可以按如下方式动态解析 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}" />

关于ajax - 我可以从 <p :ajax event=select listner=method1, method2> 调用多个方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25488593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com