Struts2.0与DWR2.0的整和
2009-04-22 19:30
295 查看
最近发现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
{
// Dispatcher.initialize(servletContext);
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) 这个函数,这个问题折磨了我近半天的时间啊.
如果需要可以提供代码上来,不过最好还是建议大家亲自去修改一下比较好.
相关文章推荐
- Struts2.0与DWR2.0 的整和
- Struts2.0与DWR2.0的整和
- struts2.0 + jquery + json(转)
- Struts 2创始人Patrick Lightbody看《精通Struts 2:Web 2.0开发实战 》
- struts2.0的标签库(简介)
- struts2.0 的action的继承类或接口汇总
- Struts2.0配置文件的详细介绍
- JSP的那些事儿(2)----DWR2.0 的配置和使用
- struts 2.0 两个简单例子
- AJAX框架DWR2.0 release
- struts2.0 前台刷新重复提交
- struts2.0里的标签
- Struts2.0+Hibernate3.2+Spring3.2+Mysql5.6基础搭建所需JAR包
- struts2.0+spring intercepter 不能注入属性
- struts2.0 读取配置文件 在直接使用标签读取
- Struts1.2+Spring2.0+Hibernate3.1整合总结 MyEclipse5.5
- struts 2.0 金额小数点显示
- 在现有struts2.0项目中整合hibernate框架
- Struts 2.0 解读笔记
- Struts 2.0 解读笔记