日期:2014-05-16 浏览次数:20954 次
首先导入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"?>
<beans
xmlns="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" class="com.swu.cateTime.core.web.register.DWRRegister"></bean>
</beans>
?此时,在web-inf目录下,新建一个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 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(m