ajax喊了好多年还没实际用过趁着DWR出来用一把
用在一个很简单的地方就是检查是否有重复的名称
首先写好一个类
public class CommonServices{public boolean checkRepeatUser(String loginname){boolean result=false;省去具体代码return result;}}
在webxml中加上
<servlet><
servletname>dwrinvoker<
/servletname><
displayname>DWR Servlet<
/displayname><
servletclass>ukltdgetaheaddwrDWRServlet<
/servletclass><
initparam><
paramname>debug<
/paramname><
paramvalue>true<
/paramvalue><
/initparam><
/servlet><
servletmapping><
servletname>dwrinvoker<
/servletname><
urlpattern>/dwr/*<
/urlpattern><
/servletmapping>
在WEBINF/dwrxml中
<?xml version= encoding=UTF?><
!DOCTYPE dwr PUBLIC //GetAhead Limited//DTD Direct Web Remoting //EN ><
dwr><
allow><
create creator=new javascript=CommonServices><
param name=class value=comtestCommonServices/><
/create><
/allow><
/dwr>
这是配一个类对应于js中哪一个类基本上象一个bean管理器
在jsp中
先引入js
<script type=text/javascript src=<
%=requestgetContextPath()%>/dwr/interface/CommonServicesjs><
/script><script type=text/javascript src=<
%=requestgetContextPath()%>/dwr/enginejs><
/script><script type=text/javascript src=<
%=requestgetContextPath()%>/dwr/utiljs><
/script>
前两个是必须的CommonServicesjs会动态生成根据dwrxml
写一些方法:
function showResult(b){if(b){alert(已经有重复的登录名了!);
}else{alert(登录名尚未注册过!);
}}function checkRepeat(s){var o=getElement(s);
if(o){CommonServicescheckRepeatUser(ovalueshowResult);
}}function getElement(name){var result=null;
var objs=documentgetElementsByName(name);
if(objs){var o=objs[];
result=o;}return result;}
checkRepeat:传入一个文本框的对象名取出内容调用后台CommonServices根据返回值显示结果
showResult:回调函数处理后台CommonServices的返回结果不知道为什么要用这种方式干脆直接返回值不是挺好?还需要用回调?
getElement:自定义的实用工具函数
定义一下按钮:
<input type=button onclick=checkRepeat(userloginname) value=检查是否重复>
这样点一个按钮之后就会弹出对话框显示是否重复的信息
调用的大致流程是这样的
button>checkRepeat>CommonServicesjs>enginejs>dwr servlet>CommonServicesjava>DB