struts2中用户名是否重复如何用Ajax做

我想在struts2中加入Ajax做用户名是否重复的判断,不知道该怎么做,如果用sevlet我倒是会做的,可是在struts2中好像做不了啊。。。求各位帮我看看要怎么做啊?做好能给完整的例子让我研究下。

正好我刚做了一个相关的作业设计,给你看看,就是用的struts2,其实就是action不返回原来的string结果,用struts里的servletActionContext类的geiResponse()方法获取底层HttpServletResponse的引用,然后就和servlet里面一样了,看代码的..
struts的action类:
[code="java"]package com.ray;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;
import org.hibernate.Session;

public class CheckUserAction {
public String execute() throws Exception{
try{
String responseText="";
HttpServletRequest request=ServletActionContext.getRequest();
String username=request.getParameter("user");
Session session=com.ray.HibernateSessionFactory.getSession();
User user=(User)session.get(User.class, username);
if(user==null){
responseText="恭喜,用户名可用";
}else
responseText="此用户名已被使用";
HttpServletResponse response=ServletActionContext.getResponse();
response.setCharacterEncoding("gb2312");
response.setContentType("text/plain");
PrintWriter out=response.getWriter();
out.print(responseText);
out.flush();
out.close();
session.close();
}catch(IOException e){
e.printStackTrace();
}
return null;
}
}
[/code]
检查用户名的Ajax:
[code="java"]
function checkuser(){
var xmlHttp;
var reguser=document.all.form2.reguser.value;
if(reguser.length>=3){
if(window.ActiveXObject){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}else
xmlHttp=new XMLHttpRequest();
xmlHttp.open("get","check.action?user="+reguser,true);
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
checkSpan.innerText=xmlHttp.responseText;
}else
checkSpan.innerText+="正在检查,请稍等...";
}
};
xmlHttp.send();
}else
alert("账号至少3位");
}
[/code]

[url]http://download.csdn.net/download/j1582830/2634790[/url]
[url]http://wenku.baidu.com/view/d5c066f6f61fb7360b4c650f.html[/url]

建议使用验证工具 如validForm [url]http://validform.rjboy.cn/[/url] 你可以如下这样写

你可以在用户名的输入框注册一个焦点离开事件,当用户输入完用户名时就发送请求到action调用service和dao从数据库中检索用户名是否重复,重复与否根据你定义的字符串来判断

力推jquery validate
参考连接:
[url]http://blog.csdn.net/kebing1990/article/details/6792913[/url]
[code="js"]
$(function(){
$("#myform").validate(
{

rules: {
 name:{required:true,rangelength:[6,20],
    remote:{                                          //验证用户名是否存在
           type:"POST",
           url:"loginVerifyAction",             //servlet
           data:{
             name:function(){return $("#name").val();}
           } 
          } 
        },

[/code]

基本买模型

$.post(action,params,function(data){
if(data.success){
alert('用户名可用');
}else{
alert('用户名重复');
}
});

action
public MyAction{
private String username;
private boolean hasUsed;
//setter getter

public String execute(){

hasUsed = hasUsed(username);

}

public boolean hasUsed(String username){
//调用service逻辑,返回结果
return true;
}
}

用DWR或者jqueryAjax就可以实现