首页专业论文技术应用政策标准解决方案常用资料经验交流教育培训企业技术专家访谈电力期刊
您现在的位置:北极星电力网 > 技术频道 > 常用资料 > 构建支持Ajax的轻量级J2EE框架

构建支持Ajax的轻量级J2EE框架

北极星电力网技术频道    作者:佚名   2008/8/4 18:57:46   

 关键词:  SOA J2EE AJAX

  话说Buffalo是姓中的写的,支持下国产!来先顶一个。
  Buffalo处理Ajax有多牛,嘿嘿我还真没有正儿八经的整过。惭愧啊,争取在最近好好研究下吧。
  Buffalo支持和Spring整合。嘿嘿这也是一个亮点。亮的有些不自在。为啥?假如你用  Spring Struts Hibernate来构建的轻量级J2EE框架,Spring和Struts整合有好几种方式,有一种方式不要要论论了。
  <plug-inclassName="org.springframework.web.struts.ContextLoaderPlugIn">
  <set-propertyproperty="contextConfigLocation" value="/WEB-  INF/applicationContext.xml,/WEB-INF/business-context.xml"/>
  </plug-in>
  上面的代码还熟悉吧。问题就在这了,Buffalo支持Spring的是
  <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
  /WEB-INF/applicationContext.xml
  </param-value>
  </context-param>
  <servlet>
  <servlet-name>context</servlet-name>
  <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
  </servlet>
  上面的部分代码是Buffalo支持Spring必须的。如果Spring和Struts整合用PlugIn方式,也就是Spring来管理Action(管理Action好坏先不说).Buffalo和Spring整合再在Web.xml配置SPring的东东,总感觉怪怪的。Buffalo获取WebApplicationContext是通过  WebApplicationContextUtils.getWebApplicationContext(context);来获取的。感觉浪费。。。。。。所以想让Buffalo用Spring放在ServletContext里面的WebApplicationContext  (ContextLoaderPlugIn实现把WebApplicationContext的实例放在了ServletContext中)。所以就在Buffalo中实现了一个BuffaloPlugIn。代码如下:(写的不规范,凑合看吧)
。。。。
  /**
  *
  *@Descripted<B>Buffalo Spring Struts Hibernate/B>
  *<P></P>
  *@authormeconsea
  *@Company
  *@IM:MSN:meconsea@hotmail.com
  *QQ:75147664
  *E-mail:meconsea@163.com
  *@date2006-11-16
  *@Version1.0Beta
  */
  publicclassBuffaloPlugInimplementsPlugIn{

  publicstaticfinalLoggerlog=Logger.getLogger(BuffaloPlugIn.class);

  publicstaticfinalStringSERVLET_CONTEXT_PREFIX=  ContextLoaderPlugIn.class.getName() ".CONTEXT.";
  publicstaticfinalStringBUFFALO_CONTEXT_PREFIX=  BuffaloPlugIn.class.getName() ".CONTEXT.";

privateModuleConfigmoduleConfig;
privateActionServletactionServlet;
publicvoiddestroy(){
//TODOAuto-generatedmethodstub

}

protectedfinalStringgetModuleConfigPrefix(){
returnthis.moduleConfig.getPrefix();
}
protectedfinalActionServletgetActionServlet(){
returnthis.actionServlet;
}

publicStringgetServletContextAttributeNameForBuffalo(){
returnBUFFALO_CONTEXT_PREFIX;
}
publicStringgetServletContextAttributeNameForSCP(){
returnSERVLET_CONTEXT_PREFIX getModuleConfigPrefix();
}

publicvoidinit(ActionServletas,ModuleConfigmc)
throwsServletException{
//TODOAuto-generatedmethodstub
log.info("BuffaloPlugIninitbegin......");
this.actionServlet=as;
this.moduleConfig=mc;
as.getServletContext().setAttribute  (getServletContextAttributeNameForBuffalo(),getServletContextAttributeNameForSCP());
log.info("initend");
  }
  }

  把Buffalo中的SpringFactory和SpringUtil的获得WebApplicationContext的方式修改如下:
在SpringUtil中增加方法:
  /**
*获取WebApplicationContext
*@paramcontext
*@return
*/
publicstaticWebApplicationContextgetWebApplicationContext(ServletContextcontext){
WebApplicationContextwac=null;
log.info("获取Wacbegin......");

if(context==null){
log.info("contextisnullreutrnnull");
returnnull;
}
StringwacAttrName=(String)context.getAttribute(BuffaloPlugIn.BUFFALO_CONTEXT_PREFIX);
log.info(" wacAttrName==" wacAttrName);

if(wacAttrName!=null){
wac=(WebApplicationContext)context.getAttribute(wacAttrName);
}

if(wac==null){
log.info("wacisnull,obtainWebApplicationContextby  WebApplicationContextUtilsagain");
wac=WebApplicationContextUtils.getWebApplicationContext  (context);
}
returnwac;
}

  ....//
  WebApplicationContextappCtx=getWebApplicationContext  (context);//WebApplicationContextUtils.getWebApplicationContext(context);
  好了,修改完毕了。在Struts-config.xml中增加<plug-in  className="net.buffalo.service.spring.BuffaloPlugIn"/>就OK了。Web.xml中只配置
  <servlet>
  <servlet-name>bfapp</servlet-name>
  <servlet-class>net.buffalo.web.servlet.ApplicationServlet</servlet-class>
  </servlet>
  就完全支持SPring了。当然是建立在Spring Struts构建了轻量级框架的基础上的。哈哈不知道我自己能不能看懂。就此搁笔!闪!!!!!给自己留的纪念。

来源:希赛网
友情链接
北极星工程招聘网北极星电气招聘网北极星火电招聘网北极星风电招聘网北极星水电招聘网北极星环保招聘网北极星光伏招聘网北极星节能招聘网招标信息分类电子资料百年建筑网PLC编程培训

广告直拨:   媒体合作/投稿:陈女士 13693626116

关于北极星 | 广告服务 | 会员服务 | 媒体报道 | 营销方案 | 成功案例 | 招聘服务 | 加入我们 | 网站地图 | 联系我们 | 排行

京ICP证080169号京ICP备09003304号-2京公网安备11010502034458号电子公告服务专项备案

网络文化经营许可证 [2019] 5229-579号广播电视节目制作经营许可证 (京) 字第13229号出版物经营许可证新出发京批字第直200384号人力资源服务许可证1101052014340号

Copyright © 2022 Bjx.com.cn All Rights Reserved. 北京火山动力网络技术有限公司 版权所有