lfnxd

2008年8月7日

     摘要: 当前作为AJAX的开发中可以选择的JS UI脚本库还是不少,但是Ext 2.0是中立的,开发简易的,界面和交互性更加强大友好的库,他不必要求和任何MVC结合,纯正的js前端脚本,不是java2js,也不是用xml语法描述界面,个人觉得更加适合引入项目来增加界面的友好性和交互体验,而且简化JS前端的编码。 Ext 2.0的DEMO体验网址:  http://extjs.com/...  阅读全文
posted @ 2008-08-11 15:48 云和山的彼端 阅读(1320) | 评论 (0)编辑 收藏
需求
        在客户的B/S应用系统中使用电子地图。该系统只可运行于内部网中。

分析
        由于系统中的电子地图只能运行于局域网中所以不能采用google地图等。而且客户项目不大,所以不能购买收费的gis服务器。

设计及架构
        gis服务器采用开源的geoserver+tomcat。
        地图数据可以从国家基础地理信息系统http://nfgis.nsdi.gov.cn/nfgis/chinese/c_xz.htm下载。
        数据库采用postgresql8.3。
        页面技术采用OpenLayers。
       

实施
       1、安装postgresql数据库,可以安装时选择安装postgis组件。也可在安装完的基础山再安装postgis。
       2、创建gis数据库,新建数据库时选择模板为template_postgis。
       3、下载县级数据bount500.e00。
       4、用工具将bount500.e00转换为shp格式。
       5、下载开源工具FWTools2.2,执行命令ogr2ogr -f "PostgreSQL" PG:"host=localhost dbname=数据库名称 user=用户名 password=密码"  shp文件路径 -append -update,将数据导入postgis数据库中。
       6、下载tomcat5.5和geoserver,将geoserver.war部署到tomcat中,启动应用服务器。
       7、登录geoserver应用,配置地图服务端,参考geoserver在线帮助。
       8、下载OpenLayers,在javascript中包含OpenLayers.js。参考openlayers的例子编写客户端脚本。
        这样一个简单的电子地图系统就完成了。
posted @ 2008-08-07 11:27 云和山的彼端 阅读(4907) | 评论 (1)编辑 收藏
     摘要:        很多架构师都是从好的开发人员逐步过渡而来的,但并非每个好的开发人员都希望成为架构师,而且他们并不是都适合做架构师。无论您是打算进行职业转型的开发人员,还是寻找能承担体系结构设计责任的合适人选的经理,都务必对此转型过程有个清楚的了解。本文将讨论从实现专家到架构师的过渡过程。   在寻找优秀的指挥的时候,您首先要找的是一名优秀...  阅读全文
posted @ 2008-08-07 10:54 云和山的彼端 阅读(813) | 评论 (0)编辑 收藏

    tomahawk与trinidad提供了丰富的控件,但是当默认呈现器设置成org.apache.myfaces.trinidad.core时,tomahawk中的dataScroll不能正常工作。如果不设置默认呈现器,trinidad又不能工作,所以这是个矛盾,需要跟踪代码,使这两个优秀的开源JSF控件集能很好的共存。

    解决方法:在eclipse中导入trinidad-1.0.2的源码,修改包org.apache.myfaces.trinidadinternal.renderkit.htmlBasic中的HtmlCommandLinkRenderer.java。

public class HtmlCommandLinkRenderer extends Renderer
{

  ...
  private Renderer renderer = null;   //增加呈现器接口成员变量

  ....
  //增加encodeBegin函数

  @SuppressWarnings("unchecked")
  @Override
  public void encodeBegin(FacesContext context,
                     UIComponent component) throws IOException
  {
    // The tr:commandLink is not a rendersChildren component,
    // but h:commandLink is.  Hence, the difference in behavior
    renderer = createRenderer(component);
    renderer.encodeBegin(context, component);

    for(UIComponent child : (List<UIComponent>)component.getChildren())
    {
      RenderUtils.encodeRecursive(context, child);
    }
  }

  ...
 

  //修改encodeEnd函数为当前代码
  @SuppressWarnings("unchecked")
  @Override
  public void encodeEnd(FacesContext context,
                     UIComponent component) throws IOException
  {
    // The tr:commandLink is not a rendersChildren component,
    // but h:commandLink is.  Hence, the difference in behavior
    if(renderer==null)
    {
     renderer = createRenderer(component);
     renderer.encodeBegin(context, component);
 
     for(UIComponent child : (List<UIComponent>)component.getChildren())
     {
       RenderUtils.encodeRecursive(context, child);
     }
    }
    renderer.encodeEnd(context, component);
  }

  ...
}

 
posted @ 2008-08-07 10:48 云和山的彼端 阅读(360) | 评论 (0)编辑 收藏

导航

<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

常用链接

留言簿(4)

我参与的团队

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜