ArcGIS Server Java--自定义command

参考:Server Java 开发实战---自定义command

 

command里面就是命令按钮。在我们的ArcGIS Server的Web ADF里面,command被用来做一些不用跟地图交互的工作.
1.编写java类,实现command的功能

command里面就是命令按钮。在我们的ArcGIS Server的Web ADF里面,command被用来做一些不用跟地图交互的工作.

 

1.编写java类,实现command的功能

 

ArcGIS Server Java--自定义command 代码
   
     
package com.demo;

import com.esri.adf.web.data.WebContext;
import com.esri.adf.web.data.geometry.WebExtent;

public class MyFullExtent {
WebContext context;

public WebContext getContext() {
return context;
}

public void setContext(WebContext context) {
this .context = context;
}

public void setFullExtent() {
try {
WebExtent ex
= context.getWebMap().getFullExtent();
context.getWebMap().setCurrentExtent(ex);
context.refresh();

}
catch (Exception ex) {
ex.printStackTrace();
}
}
}

 

 

2.在faces-config.xml文件,在里面添加如下配置:web context作为一个属性,用来初始化MyFullExtent,#{mapContext}指向了一个在faces-config.xml文件中定义的另外一个Bean

 

ArcGIS Server Java--自定义command 代码
   
     
< managed-bean >
< managed-bean-name > myFullExtent </ managed-bean-name >
< managed-bean-class > com.demo. MyFullExtent </ managed-bean-class >
< managed-bean-scope > session </ managed-bean-scope >
< managed-property >
< property-name > context </ property-name >
< value > #{mapContext} </ value >
</ managed-property >
</ managed-bean >

 

 

3.在页面中调用

 

  
    
< a:command id = " fullExtent "
action
= " #{myFullExtent. setFullExtent } "
toolText
= " 全图显示 " / >

 

4.错误:Managedbean myFullExtent could not be created 引用的对象 "#{mapContext}" 的范围比引用对象小
原因为myFullExtent的managed-bean-scope属性为session,而mapContext的managed-bean-scope属性为request,调用的对象的作用范围应大于等于调用者的作用范围。此处将session改为request即可。

 

 

 

 

 

 

 

你可能感兴趣的:(command)