各位大神你们好,我在做用户注册的功能,创建了一个action 处理用户的注册和验证用户名是否存在的一个小功能,用户注册能正常完成,在验证用户名是用json做的,就是jquery请求老实报错;
我尝试将json验证单独用一个action处理,能正常完成,和注册逻辑放在一起,jquery就报错。请大家帮帮忙,帮我看看是这么回事
action
public class RegisterAction extends ActionSupport {
//用户注册
private String name;
private int flag;
private User user;
private String repass;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String getRepass() {
return repass;
}
public void setRepass(String repass) {
this.repass = repass;
}
//用户注册
public int getFlag() {
return flag;
}
public void setFlag(int flag) {
this.flag = flag;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String register(){
UserService us=new UserService();
int id=us.register(user);
if(id>0){
addActionMessage("恭喜您,"+user.getName()+"注册成功,请登录!");
return SUCCESS;
}
return ERROR;
}
public String checkName(){
System.out.println("****************************");
System.out.println("userName:"+getName());
UserService us=new UserService();
int id=us.getUserName(name);
setFlag(id);
if(id>0){
setName("用户名已存在,请更换一个用户名");
}else{
setName("用户名可以用");
}
return SUCCESS;
}
}
struts.xml
<package name="default" namespace="/" extends="json-default">
<!-- 注册 -->
<action name="registerForm" class="com.struts.action.RegisterAction" method="register" >
<result >WEB-INF/content/login.jsp </result>
<result name="error" >WEB-INF/content/register.jsp </result>
<result name="input">WEB-INF/content/register.jsp</result>
</action>
<action name="checkUserName" class="com.struts.action.RegisterAction" method="checkName">
<result type="json" ></result>
</action>
<action name="*">
<result >/WEB-INF/content/{1}.jsp </result>
</action>
</package>
页面的jquery请求
$.post("checkUserName",{name:userName.value},function(data){
$("#error").empty();
if(data.flag>0){
$("#error").append("用户名已存在,请重输入 !");
}else{
$("#error").append("用户名可以使用! ");
}
},"json");