首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

spring与dwr(ajax框架)的组合

2012-08-22 
spring与dwr(ajax框架)的结合首先导入2个包 dwr.jar, common-logging.jar ,然后从dwr的src.zip中找到engin

spring与dwr(ajax框架)的结合

首先导入2个包 dwr.jar, common-logging.jar ,然后从dwr的src.zip中找到engine.js 和 util.js 将这两个js文件放入自己项目的js文件夹下。

在web.xml中:

<servlet><servlet-name>DWRServlet</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>DWRServlet</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping>

同时新建一个applicationContext-dwr.xml文件,作为使用ajax与前端进行交互的类的bean容器。(如果不与spring集成,则忽略该步骤)

在applicationContext-dwr.xml中:

<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><bean id="DWRRegister" name="code"><?xml version="1.0" encoding="UTF-8"?><!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN""http://www.getahead.ltd.uk/dwr/dwr20.dtd" ><dwr><allow><create javascript="register" creator="spring"><param name="beanName" value="DWRRegister" /><include method="isRepeatName"/></create><convert converter="bean" match="com.swu.cateTime.core.vo.common.MessageVO" ></convert></allow></dwr>

?<convert>标签作为有返回值时,声明返回Bean的标签,<param name="beanName" value="DWRRegister" /> value的值为在applicationContext-dwr.xml注入的类的id。

?

如果不用spring,dwr.xml文件格式如下:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN""http://www.getahead.ltd.uk/dwr/dwr20.dtd" ><dwr><allow><create creator="new" javascript="fuck" ><param name="class" value="com.dwr.DWRTest"/><include method="say"/><exclude method="show"/></create></allow></dwr>

?<param name="class" value="com.dwr.DWRTest"/> value的内容为类的全限定名。

?

OK,此时我们运行项目,http://localhost:8080/工程名/dwr,进入测试页面,如果测试成功则能正确显示出来需要返回的值。

?

写js页面

首先导入三个js文件

<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/interface/register.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>

第二个为DWR框架根据配置文件自动生成的

?

function checkUsername(){var username = document.getElementById("username").value;var patrn = [a-zA-Z0-9]{6,12};if(!patrn.exec(username)){            alert("用户名只能包含6-12个字母或数字");document.getElementById("username").focus();return false;}//alert(username);register.isRepeatName(username,isRepeatName);}
?register是在dwr.xml下配置的 javascript="register"
function isRepeatName(messageVO){//alert(messageVO.message);????var target = document.getElementById("nameMessage");???if(messageVO.flag == true){?????target.innerHTML = messageVO.message;?????target.style.color="green";????}else if(messageVO.flag == false){?????target.innerHTML = messageVO.message;?????target.style.color="red";????}???}

?

?register.isRepeatName(username,isRepeatName);
前面为参数,即DWRRegister的方法,后面为回调函数。

?

OK 大功告成!

热点排行