`
dana.wang
  • 浏览: 13821 次
社区版块
存档分类
最新评论

ADF 中使用Javascript

阅读更多
1.引用JS文件
<af:document> <af:resource type="javascript" source="/customJsCode.js"/>
 … 
</af:document>

2.定义JS代码
<af:document> 
<af:resource type="javascript"> 
   function customJsFunction(){ 
     … 
    } 
</af:resource> 
…
</af:document>

3.客户端组件
1)使用af:clientListener来监听组件的各种事件。
    设置组件的clientComponent属性 为 true。
2)获得组件
在ADF中能过AdfPage.PAGE对象来管理页面,可以通过下面的方法来查找页面上的组件。
AdfPage.PAGE.findComponent,它是通过组件的客户端ID去查找组件,但是这个ID是不稳定的,会变化,因此建议应该在运行时由server端组件读取该ID,动态地加到JavaScript中。
AdfPage.PAGE.findComponentByAbsoluteId ,这是一个推荐的方法,使用绝对ID去查找。
3)客户端事件
AdfComponentEvent是所有ADF组件事件的父类,它的queue(Boolean isPartial)可以使定义在组件上的事件排到事件队列里。
例如,如果用户想用JS去调用一个按钮上的事件,可以使用AdfActionEvent.queue(commandButton, true | false)。
AdfBaseEvent 里定义了 cancel(), stopBubbling(),setPartial() 去改变事件的行为。

调用event.cancle()去阻止server对事件的操作。

4)传递参数
<af:clientListener .../>
<af:clientAttribute name="colname" value="#{tableRow.bindings.firstName.name}"/>
------------------------------------------
function copyValueToSelectedRows(evt) {
var txtField = evt.getSource();
txtField.getProperty('colname');
}

4.从客户端用JS调用server端的JAVA代码,即使用ADF的AJAX
首先,使用af:clientListener 给客户端的按钮或某个需要事件的组件注册一个client listener, 它允许JS函数去监听组件的选择,鼠标移动,点击,键盘等多个事件。

<af:clientListener method="onDoubleClick" type="dblClick"/>

JS代码
function onDoubleClick (event) {                
         var docComponment = AdfPage.PAGE.findComponentByAbsoluteId("d2");
          AdfCustomEvent.queue(docComponment, 
                                         " sayHello ", 
                                          {} ,
                                          true);
        }


其次,使用af:serverListener注册一个server listener,当客户端事件被触发时它将会被执行。server listener的代码被定义在managed bean方法里,这个方法参数是ClientEvent最后返回空。
<af:serverListener type="sayHello" method="#{helloManagedBean.sayhello}"/>


helloManagedBean的方法
public void sayHello(ClientEvent clientEvent){
        DCIteratorBinding helloIterator = ADFUtils.findIterator("helloIterator");
        Row row = helloIterator.getCurrentRow();
        ....
    }


这样,当客户端的某个组件如button的事件被触发时就会调用写在helloManagedBean中的sayHello方法。
5.ADF还提供了在JAVA代码中执行JS的方法
例如,在某个操作后,想让页面跳转
    private void skip(String page){
        ExtendedRenderKitService erks =Service.getRenderKitService(FacesContext.getCurrentInstance(),
                                        ExtendedRenderKitService.class);
        String script = "window.location.replace(\"" + page+ "\")";        
       erks.addScript(FacesContext.getCurrentInstance(), script);
    }












0
0
分享到:
评论

相关推荐

    ADF使用javascript

    文档还提供了一些关于如何在 ADF 应用程序中使用 JavaScript 的最佳实践,包括但不限于代码组织、性能优化和安全性方面的建议。遵循这些最佳实践可以帮助开发者构建出更加健壮和易于维护的应用程序。

    ArcGIS API (ADF, JavaScript, FLEX, SOAP)

    - **ADFWebControlApi.chm**:这个可能是ADF API的Web控制相关的帮助文档,详细介绍了如何在Web应用中使用ADF API的各种控件和功能。 - **Working+with+the+ArcGIS+Server+SOAP+API.doc**:这份文档可能涵盖了如何...

    Web ADF_Clientside JavaScript and CSS Reference.doc

    本文档《Web ADF_Clientside JavaScript and CSS Reference.doc》专注于客户端的JavaScript和CSS参考,这些是Web ADF应用中实现自定义外观和交互功能的关键元素。 **概念** - **客户端JavaScript**:在用户浏览器...

    利用Web ADF JavaScript Library实现GPS终端的实时位置显示

    在IT行业中,Web ADF(Application Development Framework)是Oracle公司推出的一款用于构建企业级富互联网应用(Rich Internet Applications,RIA)的开发框架。本话题主要关注如何利用Web ADF JavaScript库来实现...

    ADF 进度条的使用

    标题 "ADF 进度条的使用" 涉及到的是Oracle Application Development Framework(ADF)中的一个组件,即进度条控件。ADF是Oracle提供的一种Java EE开发框架,用于构建企业级Web应用。在ADF中,进度条通常用于显示...

    arcgis9.2 ADF开发

    6. **样式调整**:在JavaScript中,`style.display`和`style.zIndex`属性的设置用于控制页面元素的显示与层级关系,确保地图和按钮的交互效果正常。 通过这个示例,我们可以了解到在ArcGIS 9.2 ADF开发中,如何集成...

    ArcCIS Server Web ADF开发示例

    这个文件可能使用了Web ADF的JavaScript库(esri.js),通过调用其API来实现地图的加载、查询和图层控制。 总结,ArcGIS Server Web ADF开发示例展示了如何利用Esri的开发框架构建一个功能完备的Web GIS应用。通过...

    ArcGIS API for Javascript 开发教程 webapp builder协同ADF

    基础入门阶段,开发者将学习如何使用ArcGIS API for JavaScript中的基本概念,例如地图、图层、几何对象(Geometry)、符号(Symbol)、图形(Graphic)等。此外,还会介绍常用控件如鹰眼图、比例尺条、书签、信息...

    ArcGIS Server .Net ADF中的AJAX.rar

    《ArcGIS Server .Net ADF中的AJAX技术详解》 ArcGIS Server是Esri公司推出的一款强大的地理信息系统(GIS)服务器产品,它提供了丰富的服务端功能,用于处理、存储和分发地理空间数据。在ArcGIS Server的开发过程...

    adf java demo

    "ADF Java Demo"是一个关于Oracle Application Development Framework (ADF)的示例项目,它展示了如何使用Java技术在ADF环境中开发应用程序。ADF是Oracle提供的一种企业级Java EE开发框架,主要用于构建富客户端和...

    adf BEAN传参数

    ADF允许开发者在客户端使用af:clientAttribute传递参数,然后通过af:clientListener或af:serverListener将值传递给后端的JavaScript或Java代码。最后,在Java Bean的监听器中获取传递的值。 示例代码(不完整,需要...

    ADF Faces rich client Demo

    通过分析和运行这个演示应用,开发者可以直观地了解如何在实际项目中使用这些组件,以及如何在不同Web服务器上部署ADF Faces应用。 总结来说,"ADF Faces rich client Demo"是一个展示ADF Faces Rich Client组件...

    ADF资料

    Oracle公司自身就广泛使用ADF来构建其内部及客户的应用程序。例如,在Oracle Fusion Applications中,ADF发挥了核心作用,为用户提供了一套完整的企业资源规划(ERP)、客户关系管理(CRM)和供应链管理(SCM)解决...

    ArcGIS Server .Net ADF开发

    在ArcGIS Server .Net ADF(Application Development Framework)开发环境中,AJAX(Asynchronous JavaScript and XML)扮演着至关重要的角色,特别是在提升Web GIS应用性能和用户体验方面。对于那些没有深厚.NET...

    oracleADF开发指南

    - **事件处理**:支持 JavaScript 事件处理,允许开发者编写自定义客户端脚本来增强用户体验。 - **页面生命周期**:理解页面加载、事件处理和提交过程中的各个阶段。 #### 五、控制层开发 - **业务流程管理**:...

    Oracle ADF faces rich client 11g 开发文档

    本篇文档旨在详细介绍如何使用ADF Faces Rich Client 11g进行基于Ajax的富客户端组件开发。 #### 二、基础知识 ##### 1. JavaServer Faces (JSF) - **定义**:JSF是一种用于构建企业级Web应用程序的标准Java EE技术...

    使用jQuery和ADF提供淡出的用户反馈

    若要在ADF应用中集成jQuery,需要确保ADF页面允许使用自定义JavaScript代码,并在适当的时机触发上面的jQuery函数。 例如,可以在ADF页面的 `&lt;af:clientListener&gt;` 或 `&lt;af:clientBehavior&gt;` 标签中添加事件监听器...

    adf短网址网赚版源码

    "adf短网址网赚版源码"是一款专为网络营销和推广设计的开源程序,它允许用户通过创建简短的网址来提高其在线内容的可分享性和吸引力。这种服务不仅可以优化长链接的外观,还能帮助运营者跟踪点击量,进而实现盈利。...

    ADF mobile

    例如,要从 List View 中获取多条数据,可以使用 CollectionModel 对象,它是 Oracle ADF 中用于处理数据集合的接口。 **PageFlowScope 与 PropertyListener** 在页面导航中,PageFlowScope 可用于存储值,而 ...

Global site tag (gtag.js) - Google Analytics