dwr和ssh整合

最近在学习web方面的各种应用,学习到dwr时,我想将它整合到我的ssh框架上,将dwr和spring整合很容易,将dwr.xml中create的属性creator设置为spring就行了。
整合步骤如下:
1.在web.xml中配置dwr的控制器

<!-- 配置dwr的控制器-->
<servlet>
<servlet-name>dwr</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>


2.在WEB_INF下添加dwr.xml文件,写了一个简单方法调用,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<!-- -->
<create creator="spring" javascript="check">
<param name="beanName" value="userService"></param>
<include method="login"/>
</create>
</allow>

</dwr>


这里的userService是在spring的配置文件里定义的。在我的applicationConext.xml中如下:

<bean
id="userService"
class="zwh.struts.maven.service.impl.UserServiceImpl">
<property name="userDao">
<ref bean="userDao"/>
</property>
</bean>


这样dwr与spring整合就完成了。但我的项目是ssh项目,在web.xml定义的struts2的过滤器拦截了dwr请求,所以请求dwr时总是报错。经过搜索找到了解决答案:
在struts.xml中添加一个常量,即为struts标签添加constant子标签,内容如下:

<constant name="struts.action.excludePattern" value="/dwr/.*,/dwr/test/.*"></constant>

这里一定要注意/dwr/.*和dwr/test/.*在星号的前面是有一个点的。我原以为没有点的,在我没加点时请求../project/dwr/是成功的,但点击页面的方法进入../project/dwr/test/..中就出问题了,报出找不到action。具体是什么原因不明白,等待高人来解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值