使用DWR简单使用AJAX
使用DWR简单使用AJAXAJAX很火,不过我只会比较简单的框架。
配置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]