`
Virgo_S
  • 浏览: 1153716 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Server Java 三:用Ajax得到地图比例尺(客户端代码)

阅读更多
上个讲座我们讲到,服务器端已经得到了当前地图的比例尺,我们需要在客户端做一个处理,把这个比例尺数据给用户看。我们在页面上放一个文本框,用来显示比例尺数据,如下面的代码所示:
<tr>
  <td>Scale</td>
  <td><input type="text" id="scale" size="36" /></td>
</tr>

我们如何将服务器传过来的数据更新这个文本框呢?来看看前面讲座中提到的往服务器端发送请求时候的那个回调函数:
var xmlHttp = EsriUtils.sendAjaxRequest(url, params, true, function() { updateInfoResponse(xmlHttp); });

我们把回调函数的代码也贴在这里:
function updateInfoResponse(xmlHttp) {
if (xmlHttp != null && xmlHttp.readyState == 4 && xmlHttp.status == 200) {

var xml = xmlHttp.responseXML;
  var scale=xml.getElementsByTagName("scale").item(0).firstChild.nodeValue;
  document.getElementById("scale").value = "1:" + scale

}
}

这个代码相比大家都能看明白了,先判断服务器端是不是已经处理结束,并且服务器的状态一切正常,然后得到服务器返回的xml,通过getElementsByTagName把里面包含着的比例尺数据提取出来,组合中我们熟悉的文本,然后把这个文本填充到ID为scale的文本框中。

我们来总结一下,我们发送了一个请求,这个请求包含了MapID参数,和一个标志参数ajaxdemo,MapID参数可以让服务器得到MapControl的实例和WebMap,进而得到比例尺。Ajaxdemo让服务器端的处理程序可以正确的辨识这个请求是我们这个PhaseListener需要处理的请求,处理结束后,返回XML到客户端。客户端的回调函数处理XML文档,提取出比例尺信息,写入到页面的文本框中。撩起Ajax神秘的面纱后,发现原来Ajax不过如此,老酒装新瓶,重新包装了一下。
讲到这里,大家心中想必还有两个疑点,第一个是说了半天,我们是怎么触发这个请求的呢?通过定时器触发么?不是。我们是通过地图的变化进行触发的,这样是最最合理的,每当地图更新了,客户端会自动发送一个请求,要求地图变化后的比例尺。非常合理,但是怎么进行设置呢?我们经常说,我们的控件是支持Ajax的,如何支持?我们支持通过监听器的方式,监听地图的变化,如下面的代码所示:
var map = EsriControls.maps["Map0"];
  map.addUpdateListener("request", updateInfoRequest);

这样,每次地图更新时,都会触发updateInfoRequest函数,该函数用来向服务器端发送请求。

另外一个疑问是Phaselistener怎么设置,看一下JavaDoc可以知道,我们可以在faces-config.xml文件中,用下面的语句进行设置:

<lifecycle>
  <phase-listener>demo.AjaxDemoPhaseListener</phase-listener>
</lifecycle>
分享到:
评论

相关推荐

    ArcGIS+Server+Java讲座

    14、ArcGIS Server Java讲座--用Ajax得到地图比例尺(客户端代码) 33 15、ArcGIS Server JAVA 讲座 自定义Functionality 35 16、ArcGIS Server Java讲座---用自定义functionality实现用户权限控制 37 17、Server Java...

    DWR: Easy AJAX for JAVA

    DWR(Direct Web Remoting)是一个开源库,它简化了 AJAX 在 Java Web 应用中的使用方式。通过 DWR,开发人员可以轻松地在浏览器端调用服务器端的 Java 方法,而无需了解复杂的 AJAX 编程技巧。 #### 二、DWR 的...

    DWR:java ajax application

    ### DWR:Java AJAX 应用程序框架详解 #### 一、引言 随着Web技术的发展,用户对网站的交互性和响应速度提出了更高的要求。传统的Web应用开发方式已无法满足这些需求,因此Ajax(Asynchronous JavaScript and XML...

    ASP.NET 2.0 Ajax程序设计——第II卷:客户端Microsoft AJAX Library与异步通信层源代码

    本卷侧重分析ASP.NET AJAX框架的客户端部分,包括对JavaScript 在面向对象、DOM 操作方面的扩展、ASP.NET AJAX 客户端组件、ASP.NET AJAX XML脚本等,还介绍了ASP.NET AJAX 框架为开发者在客户端用JavaScript 与...

    ASP.NET AJAX深入浅出系列课程(21):利用Microsoft AJAX Library开发客户端组建(上)

    在本课程"ASP.NET AJAX深入浅出系列课程(21):利用Microsoft AJAX Library开发客户端组建(上)"中,我们将探讨如何使用Microsoft AJAX Library来构建动态的、响应式的客户端组件。 首先,我们要理解Microsoft AJAX ...

    ajax实现java文件下载

    在这里,它可能包含了Ajax请求的发起代码,通过JavaScript(可能使用jQuery或Fetch API)向FileAction发送请求,请求参数包括要下载的文件扩展名。 6. **新建 文本文档.txt**:这可能是示例中的一个测试文件,用于...

    Ajax刷新 java Ajax 页面刷新

    在Java后端,我们通常使用Servlet或Spring MVC等框架来处理Ajax请求。当前端发送Ajax请求时,后端接收到请求后,执行相应的业务逻辑,如数据库操作,然后将结果以JSON、XML或其他格式响应给前端。 例如,使用Spring...

    java源码:Java+ajax写的登录实例.rar

    这是一个基于Java和Ajax技术构建的登录实例源代码。在IT领域,Java是一种广泛使用的后端编程语言,而Ajax(Asynchronous JavaScript and XML)则是一种在前端实现页面无刷新交互的技术。这个实例结合了两者,为用户...

    用案例学Java Web整合开发:Java+Eclipse+Struts 2+Ajax

    总的来说,"用案例学Java Web整合开发:Java+Eclipse+Struts 2+Ajax"这个主题旨在通过实际项目来教授这些技术的综合应用,帮助开发者构建功能完善的Web应用,提升开发效率和用户体验。通过学习和实践,你可以掌握...

    java+servlet+ajax程序

    1. 类和对象:Java基于类,对象是类的实例,封装、继承和多态是其三大特性。 2. 异常处理:Java提供了一套完整的异常处理机制,确保程序在遇到错误时能够正常运行。 3. 核心库:Java Standard Edition (Java SE) ...

    Ajax+Java开发实例源文件

    4. **Java后端**:Java用于处理Ajax请求,执行业务逻辑,如数据库操作、计算等。Spring MVC、Struts2或Jersey等框架可以帮助简化Java Web应用的开发,处理Ajax请求。 5. **Servlet与JSP**:在Java Web应用中,...

    网络聊天室chatserver.java

    标题中的"网络聊天室chatserver.java"指的是一个Java程序,用于建立一个网络聊天室服务端。这个服务端程序,通常称为服务器,是整个聊天系统的核心,它负责接收客户端的连接请求,处理通信,并将消息广播给其他在线...

    ajax示例java版本

    6. **JSP/Servlet**:在Java Web应用中,JSP(JavaServer Pages)或Servlet常用于生成动态内容。Ajax请求的响应可以由Servlet生成,然后返回给客户端。 7. **回调函数**:在JavaScript中,Ajax请求是异步的,因此...

    Java Ajax分页,jsp ajax分页

    Java AJAX(Asynchronous JavaScript and XML)分页与JSP(JavaServer Pages)相结合,可以提供无需刷新整个页面即可动态加载更多内容的能力,提高用户体验。本教程将深入探讨如何使用AJAX、JavaScript以及MySQL...

    ASP.NET AJAX深入浅出系列课程(23):利用Microsoft AJAX Library开发客户端组件(下)

    在本课程中,我们将深入探讨ASP.NET AJAX框架中的一个重要部分——Microsoft AJAX Library,以及如何使用它来开发功能丰富的客户端组件。Microsoft AJAX Library是ASP.NET AJAX的核心组成部分,它为Web开发者提供了...

    ASP.NET AJAX深入浅出系列课程(10):基于Microsoft AJAX Library扩展客户端组件

    在这个“ASP.NET AJAX深入浅出系列课程(10)”中,我们将聚焦于如何基于Microsoft AJAX Library来扩展客户端组件,以实现更加灵活和定制化的功能。 1. Microsoft AJAX Library基础 - AJAX库的核心是MicrosoftAjax....

    arcgis server for java

    5. **AJAX集成**:在"ajaxdemo.zip"中,我们可以看到如何使用Ajax技术与ArcGIS Server交互,实现实时更新的地图展示和用户交互。这涉及到JavaScript库如Dojo或jQuery,以及ArcGIS JavaScript API。 6. **安全性与...

    Java 模拟Ajax POST GET 提交代码

    Java 模拟Ajax POST GET 提交代码,实测很好用。

Global site tag (gtag.js) - Google Analytics