应用中需要不刷新提交数据,以前一直用iframe或者xmlhttprequest,现在Ajax之火,因此到open-open看了看,发现DWR,之所以没有先使用用的多的ext,jquery等,是因为看到DWR和Spring很容易调用,而项目中的框架为Spring,因此就下载来看(http://directwebremoting.org/dwr/download)。 与Spring集成非常简单: 1、拷贝jar包到WEB-INFO/lib 2、在应用部署描述文件web.xml增加
<servlet> <servlet-name>dwr-invoker</servlet-name> <display-name>DWR Servlet</display-name> <description>Direct Web Remoter Servlet</description> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>activeReverseAjaxEnabled</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>initApplicationScopeCreatorsAtStartup</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>maxWaitAfterWrite</param-name> <param-value>100</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>3、在WEB-INFO下配置DWR要调用的Spring的bean的配置文件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="pubMenuService"> <param name="beanName" value="pubMenuService"/> <include method="insert"/> </create> <convert converter="bean" match="ort.lkj.permission.PubMenu"/> </allow> </dwr>4、在页面调用 首先引入脚本文件
<script language="JavaScript" src="dwr/engine.js"></script>
<script language="JavaScript" src="dwr/util.js"></script>
<script language="JavaScript" src="dwr/interface/pubMenuService.js"></script>
然后定义js方法
<script> function addMenu(){ var pubMenu = {id:null,menuId:null,menuName:null,url:null,parentId:null}; dwr.util.getValues(pubMenu); pubMenuService.insert(pubMenu); } </script>只要调用js方法addMenu即可实现不刷新提交数据。