瓶zi 2017-03-24 12:04 采纳率: 0%
浏览 1151
已结题

Ajax异步查询用户名时报错空指针问题? ps:第一次问问题,不大清楚格式,请勿纠~~~

java.lang.NullPointerException
at cn.kpp.shop.user.action.UserAction.findByName(UserAction.java:51)

UserAction:

public class UserAction extends ActionSupport implements ModelDriven {

private static final long serialVersionUID = 1L;
// 模型驱动使用的对象
private User user = new User();

public User getModel() {
    return user;
}

//注入service
private UserService userService;

public void setUserService(UserService userService) {
    this.userService = userService;
}

/*
 * 1.跳转到注册页面的方法
 */
public String registPage(){
    return "registPage";
}

/*
 * 2.Ajax进行异步校验用户名的方法
 */
public String findByName() throws IOException{
    ****User existUser = userService.findByUsername(user.getUsername());** 这行报错?**
    // 获得response对象,项页面输出:
            HttpServletResponse response = ServletActionContext.getResponse();
            response.setContentType("text/html;charset=UTF-8");
            // 判断
            if (existUser != null) {
                // 查询到该用户:用户名已经存在
                response.getWriter().println("<font color='red'>用户名已经存在</font>");
            } else {
                // 没查询到该用户:用户名可以使用
                response.getWriter().println("<font color='green'>用户名可以使用</font>");
            }
            return NONE;    
}

}

注册页面:regist.jsp

/*

  • 前台JS校验:非空
    */

    function checkForm() {
    //校验用户名,获得文本框的id值
    var username = document.getElementById("username").value;
    if(username == null || username ==""){
    alert("用户名不能为空!");
    return false;
    }
    //校验密码,获得文本框的id值
    var password = document.getElementById("password").value;
    if(password == null || password ==""){
    alert("密码不能为空!");
    return false;
    }
    //校验确认密码,获得文本框的id值
    var repassword = document.getElementById("repassword").value;
    if(repassword != password){
    alert("两次密码输入不一致!");
    return false;
    }
    }

    /*

    • Ajax异步校验:用户名是否存在
      */

      function checkUsername() {
      var username = document.getElementById("username").value;
      //1.创建异步交互对象
      var xhr = createXmlHttp();
      //2.设置监听
      xhr.onreadystatechange = function(){
      if(readystate == 4){
      if(xhr.status == 200){
      document.getElementById("span1").innerHTML = xhr.responseText;
      }
      }
      }
      //3.打开连接
      xhr.open("GET","${pageContext.request.contextPath}/user_findByName.action?time="+new Date().getTime()+"&username="+username,true);
      //4.发送
      xhr.send(null);
      }

      function createXmlHttp(){
      var xmlHttp;
      try{ // Firefox, Opera 8.0+, Safari
      xmlHttp=new XMLHttpRequest();
      }
      catch (e){
      try{// Internet Explorer
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e){
      try{
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e){}
      }
      }
      return xmlHttp;
      }

                    <form id="registerForm"  method="post" novalidate="novalidate" onsubmit="return checkForm()">
                        <table>
                            <tbody><tr>
                                <th>
                                    <span class="requiredField">*</span>用户名:
                                </th>
                                <td>
                                    <input type="text" id="username" name="username" class="text" maxlength="20" onblur="checkUsername();">
                                    <span id="span1"></span>
                                </td>
                            </tr>……
  • 写回答

1条回答

  • devmiao 2017-03-24 15:16
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?