我可以调用多种方法吗?
发布时间: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). 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}" /> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |