最近在给一个项目做授权的时候用到了DWR框架,一开始还比较困扰,后来发现还是比较好用的一个框架。首先我们来说说dwr框架工作原理,DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码。这样WEB开发人员就可以在JavaScript里使用Java代码(百度百科上的解释),我个人理解就是可以在js里直接调用java后台代码,通过动态的对数据的调用,可以实现无刷新效果。
接下来说一些关于dwr与Spring整合的相关配置
1.首先得有一个DWR架包 可以在官网下载最新dwr架包
http://directwebremoting.org/dwr/downloads/index.html2.我们需要在WEB-INF下创建一个dwr.xml的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://getahead.org/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="spring" javascript="aclService">
<param name="beanName" value="aclService"/>
</create>
</allow>
</dwr>
其中name="beanName"是默认的不用修改,value="aclService"就是页面调用后台service的名字,也就是Spring配置文件中对应的bean。javascript是在页面上对应的名称
create的方式为Spring
3.我们需要在web.xml里面添加配置
<!-- 3. 加载DWR框架的监听器 -->
<listener>
<listener-class>org.directwebremoting.servlet.DwrListener</listener-class>
</listener>
<!-- 4. 配置DWR的核心控制器Servlet -->
<servlet>
<servlet-name>dwr-invoker</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-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
4.我们需要在beans里面添加相应的
<!-- 访问控制管理 -->
<bean id="aclDao" class="sys.dao.impl.ACLDaoHbnTemImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="aclService" class="sys.service.impl.ACLServiceSpringImpl">
<property name="aclDao" ref="aclDao"/>
</bean>
<!-- 即时安全认证JSTL Bean -->
<bean id="securityAuthJSTLFunction" class="sys.util.system.SecurityAuthJSTLFunction">
<property name="aclService" ref="aclService"/>
</bean>
5.页面上需要导入相关js
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/engine.js'></script>
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/interface/aclService.js'></script>
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/util.js'></script>
至此 dwr与Spring整合完成。