最近在给一个项目做授权的时候用到了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整合完成。