添加命令和工具
继前一讲的ADF工程,那里只有两个工具“放大”和“缩小”以及一个命令“放大到全部”。你可以添加更多的工具和命令到你的Web ADF应用
中,本文介绍如何添加欲定义的工具或命令和自定义的工具和命令。
添加一个命令: 命令是一个触发服务端动作而不需要进一步地客户端交互地JSP页面元素。命令的一个例子是"放大到全部" 按钮。用户一点击该按钮,服务端就执行一个方法。工具在执行一个服务端方法前需要进一步的客户端交互。
Web ADF提供了如下的标准命令:
Zoom to full extent
Zoom to previous extent
Zoom to next extent
Directional pan
Tools
像下面的例子,一个"右移"的命令将添加到应用中显示了如何将添加预定义的命令到Web ADF应用中。"右移"命令允许用户右移地图当用户点击该按钮时。
添加命令的步骤:
- 在JSP页面中添加<a:command>标签
- 为该命令指定"actionListener"
- 设置该命令标签的属性
这里是一个添加向右移动的例子:
<a:command>
<f:actionListener type="com.esri.adf.web.faces.event.DirectionalPanListener"/>
<f:attribute name="contextId" value="mapContext" />
<f:attribute name="direction" value="right" />
</a:command>
对于"右移"命令,你必须设置"contextId"和"direction"属性并且指定actionListener为"com.esri.adf.web.faces.event.DirectionalPanListener"。其他属性如图片等如果必要也可以加以设置。
添加工具:工具在执行一个服务端方法前需要进一步的客户端交互。工具的一个例子是"框选放大"。用户点击按钮,还要在地图上拖拽一个方框表示欲放大的区域,然后服务端的方法才执行。地图和工具的交互是工具栏必须指定它的关联地图的原因。
工具的clientAction属性指定哪一种客户端脚本被执行。clientAction属性可以取以下的值:
EsriMapCircle
EsriMapContinuousPan
EsriMapLine
EsriMapOval
EsriMapPan
EsriMapPoint
EsriMapPolygon
EsriMapPolyline
EsriMapRectangle
调用的服务端方法可以用serverAction或serverMethod属性指定。serverAction属性需要一个实现com.esri.web.adf.faces.event.MapToolAction接口的Java类的全名。serverMethod属性需要一个绑定接受com.esri.adf.web.faces.event.MapEvent 参数的方法。服务器端的方法用clientPostBack属性设置异步地或者同步地调用。
Web ADF提供了以下标准地工具:
Zoom in
Zoom out
Pan
作为一个例子,一个"移动"工具将加到应用中显示了如何将添加预定义的工具到Web ADF应用中。"移动"命令允许用户移动地图当用户拖拽地图时。
添加工具的步骤:
- 在页面添加<a:tool>标签
- 指定"clientAction"和"serverAction"属性
- 设置工具的其他属性
这里是一个添加移动工具的例子:
<a:tool />
小结
添加自定义命令或工具的步骤:
1. 创建一个类,添加业务逻辑
2. 声明这个类作为一个managed-bean
3. 添加命令和工具标签到JSP页面中,并绑定managed-bean适当的方法