web.xml中配置DWR:
<!-- 配置DWR的核心Servlet开始 --> <!-- 配置DWR的核心Servlet --> <servlet> <servlet-name>dwr</servlet-name> <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>pollAndCometEnabled</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- 配置DWR的核心Servlet结束 -->
Dwr.xml的配置文件(和web.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> <!-- 声明java到javascript转换过程中用到的类 --> <convert converter="bean" match="org.com.model.Employee" /> <!-- 使用Spring创造器去创建和远程调用beans --> <!-- creartor属性指定类实例的创建方式,javascript属性指定在浏览器的引用名 --> <create creator="spring" javascript="EmployeeDWR"> <!-- value 属性注入Spring中的实例 --> <param name="beanName" value="employeeManager" /> <!-- 显式的引入可调用的方法 --> <include method="checkEmppoyeeName" /> </create> </allow> </dwr>
dao层:
/** * 查询用户名 */ public int check(String userName) { List<Employee> list =this.getHibernateTemplate().find("from Employee where userName=?",userName); if(list!=null && list.size()>0){ return 1; } return 0; }
Service层:
//检查员工用户名唯一性(DWR中调用) public int checkEmployee(String userName) { return this.employeeDao.check(userName); }
DWR前台页面:
<%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="gb2312"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>Insert title here</title> <script type='text/javascript' src='../dwr/interface/EmployeeDWR.js'></script> <script type='text/javascript' src='../dwr/engine.js'></script> <script type='text/javascript' src='../dwr/util.js'></script> <script type="text/javascript"> function checkname(){ var username=document.getElementById("userName"); var check1=document.getElementById("check1"); if(username.value==""){ check1.innerHTML="<font color='red'>用户名不能为空!</font>"; username.focus(); } else{ check1.innerHTML=""; EmployeeDWR.checkEmppoyeeName(username.value,putCheckValue); } } function putCheckValue(data){ var username=document.getElementById("userName"); var check1=document.getElementById("check1"); if(data==1){ check1.innerHTML="<font color='red'>此用户名已用,请重新填写!</font>"; username.focus(); } else{ check1.innerHTML="<font color='green'>此用户名可用!</font>"; } } </script> </head> <body> <table> <tr> <td><input type="text" name="userName" id="userName" onblur="checkname();"/><span id="check1"/></td> </tr> </table> </body> </html>