使用Client Listener调用服务器端方法


1、创建ADF应用,并在ViewController项目中创建新页面main.jspx,为方便处理,在创建页面时为该页面生成对应的Backing Bean

2、拖动ADF Button到main.jspx页面,如图为该按钮分别添加Client Listener与Server Listener

 

Client Listener:


Server Listener:


 

3、由于在2中添加的Client Listener中调用的客户端方法为callClientMethod,因此需在页面添加JavaScript,即添加callClientMethod方法,代码如下(添加位置<af:document>与<af:form>之间): 
<f:facet name="metaContainer"> 
  <af:group> 
    <trh:script> 
      <![CDATA[ 
        function callClientMethod(event){ 
          AdfCustomEvent.queue(event.getSource(), "callServerMethod",{params:'click button'}, true); 
        } 
      ]]> 
    </trh:script> 
  </af:group> 
</f:facet>

4、上步中可以看到,在该JavaScript方法中调用了名为callServerMethod的Server Listener,即在步骤2中添加的Server Listener,并传入了params参数,传入字符串“click button”。该Server Listener又调用了backing bean中的clickButtonListener()方法,代码如下:

[java]  view plain copy
  1. public void clickButtonListener(ClientEvent clientEvent) {   
  2.     System.out.println("Value from page is: " +   
  3.       clientEvent.getParameters().get("params"));   
  4. }  
 

5、保存应用,运行该应用

你可能感兴趣的:(ADF)