就是ssh,不过是struts1,Spring和hibernate

解决方案 »

  1.   

    告诉你思路,很简单的:
    1.在页面上通过一个js事件触发你的ajax方法,同名校验一般是onblur:function checkUsername(){
         $.ajax({
               type:"POST",
       url:"你的后台action",
       data:传递的参数,JSON格式,例如:{"ptusername":$("#ptusername").val()},
       dataType:"text",
               success:function(data){
                     alert(data);  data就是你后台响应回来的信息,由此区分是否存在
               }
         });
    }
    2.由于struts本身对ajax的支持就不是很好,推荐你用这种方法:
    在你的Action方法中调用service,判断存在或不存在,比如可以返回0或1.
    然后直接通过servletAPI得到HttpServletResponse对象,通过其write()方法可以直接把响应信息写到前台,就是你前台的data    可以接收到了,在你的struts的配置中只需定义一个入口Action,不需要result,在方法中return null,就结束了。不知道LZ明白否。
      

  2.   

    AJAX校验直接找jquery文档就行了,里面全都有...
      

  3.   

    后台:
    class

    //这里是action里面的方法
      checkNmae(string name)
    {
       string name = dao.查询name方法
    //判断if()
    {
     return 标示符
    }return 标示符
    }前台:
        ajax成功回调函数success  data就是后台返回的标示。
         success:function(data){     
                 alert(data); 
              }      }); }
    }
      

  4.   

    拿到名称,传递给后台查询数据库是否有相同数据,返回true或false,一个ajax就够了啊
      

  5.   

    谢谢各个大神的回复,我刚进公司没多久,公司的框架已经封装了用AJAX校验的方法,只不过在我那时没学会,现在还好。。
      

  6.   

    你的这个方法我看了好几遍,不是太懂。。
    后台写个action(这个不用说了吧),定义个参数private String  ptusername ;//get,set 自己生成,此参数与ajax传过来的data中参数名必须相同
    在你的action中写
    public void checkName(){//struts.xml不用配置了
       String sql = "select * from 用户表 where 用户名 = ?";
      //把你定义的参数 ptusername 替换?
    //如果查出来了,证明重复了,查不出来
    //定义一个变量
    Map<String,Object> flag = new HashMap<String,Object>();
    flag.put("success",true);//flag.put("success",false);
    然后用json输出map,
    这样你前台在ajax的success方法中用data.success就可以判断有没有了
    }