博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在JSF框架下开发WebGIS

Posted on 2006-09-14 20:39  盗号者不举  阅读(1357)  评论(3编辑  收藏  举报

已经有两个月没写东西了,这段时间在学习Java和ArcGIS Server Java ADF,一直想把学到的一点东西写下来,可每次刚打开网页就没了那个心情。今天终于狠下心来整理整理这段时间看到和学到的东西。

首先介绍一下如何配置J2EE开发的环境。
1、下载必须的软件和开发包。
jdk 1.5.0_08;Tomcat;MyEclipse;eclipse;Java ADF。
2、配置环境变量。这里就不多说了,主要就是JAVA_HOME, TOMCATHOME, path, classpath, 以及arcgis的一些环境变量,上网查查有很多这方面介绍。
3、ArcGIS Server Java ADF自带的模版,打开命令窗口,定位到<install location>\DeveloperKit\Templates\Java。在命令窗口中输入arcgisant build。这时弹出一个窗口,我们就可以在哪里得到我们想要的模版,esri提供了7个模版,十分的详细,我们只需要好好研究就可以自己写代码了。

把所有设置完成以后我们就可以做开发了。ArcGIS使用的是JSF框架,这时目前最新的一种技术之一,已经可以取代struct并且可以与asp.net的behind coding媲美。我们需要了解的首先是它的思想,就是前台界面与后台代码分离的思想,也就是模型应用与界面表现的分离,更好的体现MVC的思想。

在web应用程序开发时,程序员可以只用专注于后台代码的编写,为实现业务逻辑编写自己的javaBean而不用考虑前台代码。美工人员就只用在前台把界面设计好。

而JSF是通过javaBean实现这个思想的。在前台代码中如何嵌入后台的功能呢?这里用到了h标签和f标签,也就是jsf html和jsf core标签。例如<h:inputText value=#{context.myClass.property}/>,这里我们就把这个输入框和myClass类的实例中的property属性连接起来了,只要在javaBean里写入给这个属性读写的函数get和set就可以了。这个类的实例可以在faces-config这个xml文件里写<manage-bean-name>myClass</manage-bean-name>。

同样地动作以及监听器的制作也是表现层与业务层分离的。

这里主要介绍一下ArcGIS中的开发。首先我们除了引入h标签和f标签外,还要引入arcgis的标签ags。所有的标签必循包含在<f:view>中。而所有的地图标签必须包含在<ags:context>中。我们的地图就是通过这个标签创建的<ags: context  resouce="serverobject@host"/>。这里要说的是,其实很多地图的基本操作,Java ADF的模版都已经写好了,我们用就是了,没必要自己在去写它们的类,这时重复劳动,根本没必要,比如放大缩小漫游全屏,identify,后退前进,Toc,鹰眼,比例尺,指北针等等。但也有一些是虽然有模版不过我们仍然需要自己写的,比如缓冲,查询。

刚开始写代码的时候,可能会觉得jsf中的一些配置文件不好理解,其实它们也是javaBean中的一种,我们把它们写成xml,在页面中直接调用。还有一些xsl,他们是webcontrols的样式,从xml转换成html。

写的好乱,到最后都不知道自己在写什么了。总之我觉得还得多看帮助,多写,熟能生巧。
最后在啰嗦一句,现在最流行的网络技术是Ajax,以后这门技术必将成为各个网站的主要技术。我们看看googlemap的流行就可见其强大的趋势。这也是我们这些gis人以后又要啃的一个大头,大家努力了。最后祝愿大家学有所成。