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

鹏飞翡翠

鹏飞翡翠

2016-02-19 18:47

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享构建支持Ajax的轻量级J2EE框架的教程,热爱PS的朋友们快点看过来吧!

话说Buffalo是姓中的写的,支持下国产! 来先顶一个。
Buffalo处理Ajax有多牛,嘿嘿 我还真没有正儿八经的整过。惭愧啊,争取在最近好好研究下吧。
Buffalo支持和Spring整合。嘿嘿 这也是一个亮点。亮的有些不自在。为啥?
 
假如你用Spring+Struts+Hibernate来构建的轻量级J2EE框架,Spring和Struts整合有好几种方式,有一种方式不要要论论了。
   plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"
    set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml,/WEB-INF/business-context.xml" /
  /plug-in
  上面的代码还熟悉吧。问题就在这了,Buffalo 支持Spring的是
  context-param
      param-namecontextConfigLocation/param-name
      param-value
           /WEB-INF/applicationContext.xml
      /param-value
 /context-param
 servlet
    servlet-namecontext/servlet-name
    servlet-classorg.springframework.web.context.ContextLoaderServlet/servlet-class
    load-on-startup1/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 BBuffalo+Spring+Struts+Hibernate/B
 *             P/P
 * @author meconsea
 * @Company 
 * @IM:   MSN: meconsea@hotmail.com
 *        QQ:  75147664
 *        E-mail: meconsea@163.com
 * @date 2006-11-16
 * @Version 1.0Beta
 */
public class BuffaloPlugIn implements PlugIn {
       
        public static final Logger log = Logger.getLogger(BuffaloPlugIn.class);
       
        public static final String SERVLET_CONTEXT_PREFIX = ContextLoaderPlugIn.class.getName() + ".CONTEXT.";
        public static final String BUFFALO_CONTEXT_PREFIX = BuffaloPlugIn.class.getName()+".CONTEXT.";
       
        private ModuleConfig moduleConfig;
        private ActionServlet actionServlet;
        public void destroy() {
                // TODO Auto-generated method stub

        }
       
        protected final String getModuleConfigPrefix(){
                return this.moduleConfig.getPrefix();
        }
        protected final ActionServlet getActionServlet(){
                return this.actionServlet;
        }
       
        public String getServletContextAttributeNameForBuffalo(){
                return BUFFALO_CONTEXT_PREFIX;
        }
        public String getServletContextAttributeNameForSCP(){
                return SERVLET_CONTEXT_PREFIX+getModuleConfigPrefix();
        }

        public void init(ActionServlet as, ModuleConfig mc)
                        throws ServletException {
                // TODO Auto-generated method stub
                log.info("BuffaloPlugIn init begin ......");
                this.actionServlet = as;
                this.moduleConfig = mc;
                as.getServletContext().setAttribute(getServletContextAttributeNameForBuffalo(),getServletContextAttributeNameForSCP());
                log.info("init  end ");
        }
}

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

把Buffalo中的SpringFactory和SpringUtil的获得WebApplicationContext的方式修改如下:
在SpringUtil中增加方法:
/**
         * 获取WebApplicationContext
         * @param context
         * @return
         */
        public static WebApplicationContext getWebApplicationContext(ServletContext context){
                WebApplicationContext wac = null;
                log.info("获取Wac begin......");
               
                if(context == null){
                        log.info("context is null  reutrn null");
                        return null;
                }
                String wacAttrName = (String)context.getAttribute(BuffaloPlugIn.BUFFALO_CONTEXT_PREFIX);
                log.info("wacAttrName == "+wacAttrName);
               
                if(wacAttrName != null){
                        wac = (WebApplicationContext)context.getAttribute(wacAttrName);
                }
               
                if(wac == null){
                        log.info("wac is null , obtain WebApplicationContext by WebApplicationContextUtils again");
                        wac = WebApplicationContextUtils.getWebApplicationContext(context);
                }
                return wac;
        }

....//
WebApplicationContext appCtx = getWebApplicationContext(context);//WebApplicationContextUtils.getWebApplicationContext(context);
好了,修改完毕了。
在Struts-config.xml中增加
plug-in className="net.buffalo.service.spring.BuffaloPlugIn" /
就OK了。Web.xml中只配置
servlet
                servlet-namebfapp/servlet-name
                servlet-classnet.buffalo.web.servlet.ApplicationServlet/servlet-class
  /servlet
就完全支持SPring了。
当然是建立在Spring+Struts构建了轻量级框架的基础上的。

哈哈 不知道我自己能不能看懂。就此搁笔! 闪!!!!!
给自己留的纪念。
 注: Spring2.0 Struts1.3 Hibernate3.0

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)
展开更多 50%)
分享

猜你喜欢

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

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

struts+spring+ibatis轻量级J2EE开发

编程语言 网络编程
struts+spring+ibatis轻量级J2EE开发

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

设置J2EE支持Mysql

编程语言 网络编程
设置J2EE支持Mysql

J2EE程序的Backbase Ajax前端

Web开发
J2EE程序的Backbase Ajax前端

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SUN的《AJAX与J2EE》全文译了

Web开发
SUN的《AJAX与J2EE》全文译了

J2EE开发平台

编程语言 网络编程
J2EE开发平台

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

AJAX加速Web应用

AJAX加速Web应用

Oracle的数据库表与视图

Oracle的数据库表与视图
下拉加载更多内容 ↓