首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Struts2 + jQuery EasyUI:AJAX 請求後無法頁面跳轉的解決方案

     編輯:程式設計綜合問答

問題本質

Struts2 <result>/index.jsp</result> 返回整個頁面 HTML,但前端使用 jQuery EasyUI 發送 AJAX 請求,瀏覽器不會自動跳轉,只是將回應內容放入 XMLHttpRequest.responseText。

解決思路

採用「AJAX 回傳標記 + 前端跳轉」模式:

  1. Action 增加 boolean success 屬性及 getter/setter。
  2. struts.xml 繼承 json-default,<result type=\"json\"> 回傳 JSON。
  3. 前端 success: function(data) { if (data.success) window.location.href = '/index.jsp'; }

代碼示例


// Action
private boolean success;
public boolean isSuccess() { return success; }
public void setSuccess(boolean success) { this.success = success; }

// struts.xml
<package name=\"default\" extends=\"json-default\">
  <action name=\"myAction\" class=\"com.example.MyAction\">
    <result type=\"json\"></result>
  </action>
</package>

// JS
$.ajax({
  url: 'myAction',
  dataType: 'json',
  success: function(data) {
    if (data.success) window.location = '/index.jsp';
  }
});

此法符合 AJAX 無刷新體驗,又能實現邏輯跳轉。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved