版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
magicgod的blog:
" target="_new">http://www.matrix.org.cn/blog/magicgod/
ajax喊了好多年,还没实际用过,趁着DWR出来用一把。
用在一个很简单的地方,就是检查是否有重复的名称。
首先写好一个类
public class CommonServices
{
public boolean checkRepeatUser(String loginname)
{
boolean result=false;
...省去具体代码
return result;
}
}
在web.xml中加上
dwr-invoker DWR Servlet uk.ltd.getahead.dwr.DWRServlet debug true dwr-invoker /dwr/*
在WEB-INF/dwr.xml中
<?xml version="1.0" encoding="UTF-8"?>
dwr PUBLIC "//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
这是配一个类,对应于js中哪一个类,基本上象一个bean管理器。
在jsp中
先引入js
<script type='text/javascript' src='<%=request.getContextPath()%>/dwr/interface/CommonServices.js'></script>
<script type='text/javascript' src='<%=request.getContextPath()%>/dwr/engine.js'></script>
<script type='text/javascript' src='<%=request.getContextPath()%>/dwr/util.js'></script>
前两个是必须的。CommonServices.js会动态生成,根据dwr.xml。
写一些方法:
function showResult(b)
{
if(b)
{
alert("已经有重复的登录名了!");
}
else
{
alert("登录名尚未注册过!");
}
}
function checkRepeat(s)
{
var o=getElement(s);
if(o)
{
CommonServices.checkRepeatUser(o.value,showResult);
}
}
function getElement(name)
{
var result=null;
var objs=document.getElementsByName(name);
if(objs)
{
var o=objs[0];
result=o;
}
return result;
}
checkRepeat:传入一个文本框的对象名,取出内容,调用后台CommonServices,根据返回值显示结果。
showResult:回调函数,处理后台CommonServices的返回结果。不知道为什么要用这种方式,干脆直接返回值不是挺好?还需要用回调?
getElement:自定义的实用工具函数
定义一下按钮:
<input type="button" onclick="checkRepeat('user.loginname')" value="检查是否重复">
这样点一个按钮之后就会弹出对话框,显示是否重复的信息。
调用的大致流程是这样的:
button->checkRepeat->CommonServices.js->engine.js->dwr servlet->CommonServices.java->DB
Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
mag
标签: