qq_28930619 2018-03-20 15:02 采纳率: 25%
浏览 1537
已结题

ssm 框架已经实现,但是ajax返回验证有毛病


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>js+ajax</title>
<script type="text/javascript" src="static/bootstrap/js/jquery-2.0.3.js"></script>
<script type="text/javascript">
    function validate(){
        var name= $("#name").val();
        if(name==null||name==""){


            //为空隐藏提交按钮
            var ui =document.getElementById("tijiao");
            ui.style.display="none";


            //这里是简单的显示 不设计后台,前台做的判断
            $("#namediv").html("用户名不可以为空");
        }else{
            //ajax实现
            //11111111获取XMLhtmlRequestxml对象
            var req=createXmlHttpRequest();
            //222222222准备url 数据 回调函数
            //这个name是function下面var的参数. 
            var url="/maven/reg1.do?name="+name;
            //还有一个参数表示的是异步还是同步,一般不写直接就是true,异步的
            req.open("GET",url,true);
            //3333333333这个就是回调函数
            req.onreadystatechange=callback;

            //这个send是在从servlet判断你的账号是不是存在,  如果是true就说名字存在,给页面返回了以后才有的.为啥写空不知道
            //4发送请求
            req.send(null);
            //回调函数 
            function callback(){
                //第一个是我们的服务器成功接受了响应,并且解释了出来,状态4 第二个是服务器内部没有发生错误, url什么的也没有错,
                if(req.readyState=4&&req.status==200){
                     var date=req.responseText;
                     if(date=="false"){
                        //下面的是意思是,如果账号存在了,提交按钮自动消失
                        //超级叼
                         var ui =document.getElementById("tijiao");
                         ui.style.display="none";

                        $("#namediv").html("用户名已经存在");
                     }else{
                        //不为空了,按钮一直显示
                        var ui =document.getElementById("tijiao");
                        ui.style.display="";


                         $("#namediv").html("用户名可以使用");


                     }
                }
            }
        }
    }

        function createXmlHttpRequest(){
            //如果是ie6以上版本的浏览器
            if(window.XMLHttpRequest){
                return new XMLHttpRequest();
            }else{
                //如果浏览器是ie以下的
                return new ActiveXObject("Microsoft.XMLHTTP");
            }
        }


</script>
</head>

<body>
                <form action="/maven/reg1.do" id="form1">
                <table id="aa">
                    <tr>
                        <td>用户名</td>
                        <td><input type="text" name="username" id="name"
                        onblur="validate();" />&nbsp;<font color="red">*</font></td>

                        <td>
                            <div id="namediv" style="display: inline"></div>
                        </td>


                        <td>密码</td>

                        <td><input type="password" name="password"></td>
                        <td>电话</td>
                        <td><input type="text" name="phone"></td>
                        <td><input type="submit" value="点击注册" id="tijiao"></td>

                    </tr>   
                </table>        
                </form>
</body>
</html>



package com.gray.user.controller;

import java.io.IOException;
import java.io.PrintWriter;

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

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.gray.user.entity.RegUser;
import com.gray.user.service.impl.RegServiceImpl;
import com.gray.user.service.impl.UserServiceImpl;

@Controller
public class RegController {

    @Autowired
    private RegServiceImpl userService;
    //自动装载他到spring

    @RequestMapping("/reg1.do") //url
    public String dologin(Model model,HttpServletResponse res,@RequestParam String username,RegUser rg,HttpServletResponse response) throws IOException{
        boolean used=false;

        System.out.println("测试参数获取到bean没有"+rg.getUsername()+rg.getPassword()+rg.getPhone());
        rg.setUsername(username);

        if(userService.doUserLogin(rg)){
                used=true;
                System.out.println("通过control到--->service---到dao---到usermapp.在返回回来,service里面是ture,就是说账号不重复");


        }else{
                used=false;
                System.out.println("通过control到--->service---到dao---到usermapp.在返回回来,service里面是false,重复了账号 ");
        }
        return "regsuccess";


    }
}






package com.gray.user.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.gray.user.dao.UserDao;
import com.gray.user.entity.RegUser;
import com.gray.user.entity.User;
import com.gray.user.service.RegService;
import com.gray.user.service.UserService;
@Service
public class RegServiceImpl implements RegService {
    @Autowired
    private UserDao<RegUser> dao;

    @Override
    public boolean doUserLogin(RegUser ruser) {



        //第一次执行查询数据库,查询 userdao  selectUserName方法。 他这个方法和user.xml里面的id为selectUserName串联了.
        //也就是直接调用查询语句,并且吧值返回给reguser 类



        System.out.println("testRegServiceImpl------->查询数据库,查询语句为id是selectusername");

        List<RegUser> list = dao.selectUserName(ruser.getUsername());
        System.out.println("查到了集合大小是"+list.size()+"查到了和你账号相同是的是几个");

        if(list.size() == 0){
            System.out.println("RegServiceImpl---你没有查询到你账号和数据库相同的信息.所以你return,");
            for(int i=0;i<list.size();i++){
                System.out.println(list.get(i).getUsername());
            }
            return true; 
        }else{ 
            if(list.size()!=0){
            System.out.println("regServiceImpl---查询到和你相同的账号不是0个,返回false");    
                return false;
        }else{
            System.out.println("regserviceImpl----其他情况我也不知道啥情况,也返回false");
            return false;

            }           
        }

    }
}




页面上的ajax 他就一直出毛病,数据库有个账号名是aa 只有我在表单填写aa 他才在网页提示账号重复,    别的任何都不提示,只会提示不能为空,    而且还失灵时不灵。
但是用system. 输出 我写的任何判断都是对了, 这是为啥? 请求大神给我说下,最好说下哪里错了。谢谢了
  • 写回答

4条回答 默认 最新

  • 奔跑的小鱼儿 2018-03-21 01:05
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题