参考:Server Java 开发实战---自定义command
command里面就是命令按钮。在我们的ArcGIS Server的Web ADF里面,command被用来做一些不用跟地图交互的工作.
1.编写java类,实现command的功能
command里面就是命令按钮。在我们的ArcGIS Server的Web ADF里面,command被用来做一些不用跟地图交互的工作.
1.编写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();
}
}
}
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
代码
<
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 >
< 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 = " 全图显示 " / >
action = " #{myFullExtent. setFullExtent } "
toolText = " 全图显示 " / >
4.错误:Managedbean myFullExtent could not be created 引用的对象 "#{mapContext}" 的范围比引用对象小
原因为myFullExtent的managed-bean-scope属性为session,而mapContext的managed-bean-scope属性为request,调用的对象的作用范围应大于等于调用者的作用范围。此处将session改为request即可。