B_qxzb 2015-07-25 17:25 采纳率: 0%
浏览 1997
已采纳

struts2有响应数据,但是不跳转,也没有报错

#前言
有响应数据,但是不跳转,也没有报错。

(浏览器——》调试——》网络:可以看到响应数据就是结果页面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没有成功跳转,为什么?

  • 写回答

6条回答 默认 最新

  • B_qxzb 2015-08-06 01:43
    关注

    1、有json响应数据的话,就不应该再在业务控制器里进行跳转。
    2、如果要进入到另一个页面,应该在jquery的回调函数里进行请求。

    参考:服务器的响应数据

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?