sillycat 发表于 2013-1-23 02:18:34

使用DWR简单使用AJAX

使用DWR简单使用AJAX

AJAX很火,不过我只会比较简单的框架。
配置DWR的时候,先拷贝如下servlet到web.xml配置文件中:
<!-- dwr ajax 配置 -->
<servlet>
   <servlet-name>dwr-invoker</servlet-name>
   <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>

   <init-param>
    <param-name>config</param-name>
    <param-value>WEB-INF/dwr.xml</param-value>
   </init-param>

   <init-param>
    <param-name>debug</param-name>
    <param-value>true</param-value>
   </init-param>
   <init-param>
    <param-name>scriptCompressed</param-name>
    <param-value>false</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
</servlet>
添加FITLER:
<!-- dwr fitler -->
<servlet-mapping>
   <servlet-name>dwr-invoker</servlet-name>
   <url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
配置dwr.xml文件,可以直接使用spring管理的bean:
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"

"http://www.getahead.ltd.uk/dwr/dwr10.dtd">

<dwr>
<allow>
   <!-- 自己定义的BEAN,所以要转化一下,不然不认识 -->
   <convert match="com.sillycat.core.model.User" converter="bean" />
   <!-- 大写的UserManager是页面上调用的JS的名字 -->
   <create creator="spring" javascript="UserManager">
   <!-- 小写的userManager是spring管理的BEAN的名字 -->
    <param name="beanName" value="userManager" />
    <!-- ajax暴露的方法,应该只暴露一些安全的方法。。。 -->
    <include method="getAllUser" />
    <include method="getUser" />
    <include method="saveUser" />
    <include method="removeUser" />
   </create>
</allow>
</dwr>
页面在使用时,导入三个JS文件:
<script type='text/javascript'
   src='<%=request.getContextPath()%>/dwr/interface/UserManager.js'></script>
<script type='text/javascript'
   src='<%=request.getContextPath()%>/dwr/engine.js'></script>
<script type='text/javascript'
   src='<%=request.getContextPath()%>/dwr/util.js'></script>
页面上的JS:

function checkUserExist(){
   if($("logonName").value == null || $("logonName").value == ""){
    loginNameMessage.innerHTML="请输入登陆名!";
    return false;
   }
   DWRUtil.useLoadingMessage("checking .....");
   UserManager.isTUserExistByLogonName(userCheckResult,$("logonName").value);
}

function userCheckResult(data){
   if(data == true){
    //alert("adsfasdfasdf");
    document.getElementById("userExistFlag").value = 1;
    loginNameMessage.innerHTML="用户名已经被使用!";
   }else{
    alert("adsfasdf");
    loginNameMessage.innerHTML="";
    document.getElementById("userExistFlag").value = "0";
   }
}
调用AJAX的JS是:
UserManager.isTUserExistByLogonName(userCheckResult,$("logonName").value);
UserManager就是JS的名字,第一个参数是回调函数,后一个参数是调用的方法的参数
页: [1]
查看完整版本: 使用DWR简单使用AJAX