tank2140896 2012-12-11 07:49
浏览 375
已采纳

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

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

  • 写回答

6条回答 默认 最新

  • _init_ 2012-12-11 13:27
    关注

    正好我刚做了一个相关的作业设计,给你看看,就是用的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]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程