最近发现dwr出了2.0版本,里面提供了与目前一些主流框架的整合,如Spring,JSF,Hibernate,Struts1,Webwork等,但Struts2.0还没有提供,由于现在的项目我们采用的是Struts2.0,所以参考dwr与webwork的整合代码,修改完成了
dwr与Struts2的整和代码
1、首先下载Dwr2的源代码,将 org\directwebremoting\webwork下的类拷出来,放到 新建的一个包
比如 org.dwr.struts2 里,接下去就可以去修改里面的代码,
将类的引用都修改为从struts2的包中引用。
2、接下去关键是修改 DWRAction.java这个类
在该类中 比较特殊的是
com.opensymphony.webwork.dispatcher.DispatcherUtils 对应的struts2中的 org.apache.struts2.dispatcher.Dispatcher这个类
ServletActionContext.WEBWORK_VALUESTACK_KEY 对应 ServletActionContext.STRUTS_VALUESTACK_KEY
3、修改里面的 private DWRAction(ServletContext servletContext) 构造函数为
java 代码
- private DWRAction(ServletContext servletContext) throws ServletException
- {
-
- m_wwDispatcher = Dispatcher.getInstance();
- if(m_wwDispatcher==null)
- {
- m_wwDispatcher = new Dispatcher(servletContext, new HashMap());
- m_wwDispatcher.init();
- Dispatcher.setInstance(m_wwDispatcher);
- }
-
- m_actionProcessor = loadActionProcessor(servletContext.getInitParameter (DWRACTIONPROCESSOR_INIT_PARAM));
- }
然后修改protected ActionInvocation invokeAction 方法 将第126行的代码
java 代码
- ActionProxy proxy = ActionProxyFactory.getFactory().createActionProxy(actionDefinition.getNamespace(), actionDefinition.getAction(), extraContext, actionDefinition.isExecuteResult(), false);
替换为以下代码
java 代码
- Configuration config = du.getConfigurationManager().getConfiguration();
- ActionProxy proxy = config.getContainer().getInstance(ActionProxyFactory.class).createActionProxy(
- mapping.getNamespace(), mapping.getName(), extraContext, actionDefinition.isExecuteResult(), false);
最后将 protected void prepareContinuationAction(HttpServletRequest request, Map extraContext)
里的代码都注释掉 就可以了
4,修改 DWRActionUtil.js文件将里面的webwork字样都替换为 struts2,也可以不用修改,不过觉得不爽就是了
然后就可以按照与webwork整和的方式配置dwr.xml就可以了
<init-param></init-param>最后有一点很重要,就是在 web.xml文件中配置DwrServlet 的时候一定要加上
<param-name></param-name>
exposeInternals
<param-value></param-value>
true
这个参数,否则生成的 DWRAction.js 这个文件将不存在 DWRAction.execute(actionObj, params, callbackObj) 这个函数,这个问题折磨了我近半天的时间啊.
如果需要可以提供代码上来,不过最好还是建议大家亲自去修改一下比较好.
分享到:
相关推荐
DWR2.0 for Struts2.0的包 博文链接:https://lxy19791111.iteye.com/blog/130206
Spring2.5+Struts2.0+DWR完美整合完成用户登陆模块
主要利用hibernate3.0+struts2.0 +dwr1+spring框架
struts2.0 +spring2.0+hiberante3所需jar包
该源码成功整合了Struts2.0+Hibernate+Spring(SSH架构)+DWR+MySql+Tomcat,直接拷贝部署就可以运行,前提建立相应的数据库。模块包括(组织机构管理,人员管理,角色管理,权限管理等等),每个模块均有增删查改等...
开发环境:Windows XP sp3、SQL Server 2005、JDK 1.6、Struts2.1.6、Spring 2.0、Hibernate...至于声明式事务部分,你可以参见另外一个资源“Spring 2.0 + Struts 1.2 + Hibernate 3.2 + DWR 2.0 的JavaEE应用示例”
Struts2 + spring + hibernate + dwr 完美整合代码 dwr 用户注册 多级下拉联动 刷新表格.. 全部代码
该示例使用MyEclipse 5.5 IDE用来整合四个技术(Struts 1.2, Spring 2.0, Hibernate 3.2和Ajax技术)的轻量级的JavaEE。 操作步骤如下: 1. 下载并解压之后,使用MyEclipse导入工程 2. 找到demo目录中的.sql数据库...
NULL 博文链接:https://tianhengbao.iteye.com/blog/567580
我也是初学3个框架的整合,希望多多指教!
47. //struts2整合Spring插件 48. struts2-spring-plugin-2.0.11.2.jar 49. //struts2必须 50. xwork-2.0.5.jar 数据库设计(使用MySql数据库): Java代码 1. create table user 2. ( 3. id varchar(32) ...
struts2spring2.0hibernate3.1整合一个web项目+dwr
1.上传文件用的包:commons-fileupload-1.2.1.jar 2.输入输出包: commons-io-1.4.jar...12.struts2整合spring时用的包:struts2-spring-plugin-2.0.11.2.jar 13.spring整合hibernate时用的包:spring-hibernate3.jar
带用DWR 1 (不用DWR 2 是因为2个头太大了)开发的后台服务器端,没有整合Spring,JPA啊,Struts,Hibernate等等的流感框架, 这样总的代码非常的小,省得当大家接触到了一些大量的自己不熟悉的框架的时候会产生发晕的感觉,...
SSH框架整合 MyEclipse 6.0 + Tomcat 6 + SQLServer2005 Struts 1.2 + Spring 2.0 + Hibernate 3 + DWR3.0 文档中有代码部分,按照操作即可搭建SSH的一个小程序。
系统采用struts2+spring2.0+hibernate3.2+dwr流行框架架构的,本系统可发布运行,非常适合想学习struts2+spring+hiberante整合的初学者,如果哪个下载者对本系统的代码的学习有困难的话可以留言给我,我会尽量帮你们...
1.struts2.0 2.Hibernate 3.spring 4.Ajax 5.Jfreechart 6.JQuery 7, JSP Tree Tag 9.DWR 10.UML 11.Log4J 12.JUnit技术 13.ant 14.CVS 15.webserice 17.PowerDesigner 18.XDoclet 19.extjs ...................... ...