#前言
有响应数据,但是不跳转,也没有报错。
(浏览器——》调试——》网络:可以看到响应数据就是结果页面registerSuccess.jsp的内容)
#整个流程的代码
1.请求页面:index.jsp
// 遮罩层-注册
function register1(){
// 提交表单
var form = document.getElementById("register");
var param = $("#register").serialize();
$.post(form.action,
param,
function(json){
if(json.success){
// 退出遮罩层
$.unblockUI();
}else{
alert("注册失败!");
}
},
"json");
}
2.配置文件
<struts>
<package name="loginPackage" extends="struts-default"
namespace="/login">
<action name="register" class="loginControllerBean" method="register">
<result name="register">/registerSuccess.jsp</result>
</action>
</package>
</struts>
3.业务控制器:RegisterController.java
public String register(){
//
loginBusiness.register(user);
//
try {
response.getWriter().print("{\"success\":\"true\",\"data\":\"\"}");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//
return "register";
}
#结语
从请求到业务控制器(即Action类),然后一直到Action的方法返回一个代表结果页面的字符串都是没有任何问题的,而且浏览器也收到了响应数据。但这里有2个问题,第一,jquery发出post请求之后没有执行回调函数,这是为什么?第二,客户端浏览器已经接收到响应数据,但是struts2没有成功跳转,为什么?