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>……