程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> struts2 0-struts2有響應數據,但是不跳轉,也沒有報錯

struts2 0-struts2有響應數據,但是不跳轉,也沒有報錯

編輯:編程綜合問答
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沒有成功跳轉,為什麼?

最佳回答:


1、有json響應數據的話,就不應該再在業務控制器裡進行跳轉。
2、如果要進入到另一個頁面,應該在jquery的回調函數裡進行請求。

參考:服務器的響應數據

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved