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

JavaWeb 父子窗口參數傳遞:從 JSP 到 Action 的完整鏈路設計

     編輯:程式設計綜合問答

場景:父頁面彈出子窗口並傳遞 `id` 參數,子頁面提供模糊搜索,搜索提交後需保持原 `id` 參數不丟失,並正確傳遞給後端 Action。

常見錯誤:參數硬編碼與丟失

原代碼問題:

// 錯誤:id 寫死為字符串 "i_receive",未使用傳入參數
window.open(".../showUserList.action?id=i_receive", ...);

// 搜索時未攜帶原 id
window.location = ".../searchUserList.action?userName=" + encodeURI(val);

正確實現方案

1. 父頁面正確傳遞動態 ID

function openNewWindow(id) {
    window.open("<%=basePath%>user/showUserList.action?id=" + id, 
                'linkman', "width=260,height=345,top=200,left=" + ((screen.width/2)-200));
}

2. 子頁面解析 URL 參數

var urlParams = new URLSearchParams(window.location.search);
var originalId = urlParams.get('id'); // 獲取父頁面傳遞的 id

3. 搜索提交時攜帶原 ID

function doSearch() {
    var userName = $("#searchInput").val();
    var url = "<%=basePath%>user/searchUserList.action?userName=" + encodeURI(userName) 
            + "&id=" + originalId; // 關鍵:保留原始 id
    window.location = url;
}

後端 Action 接收建議

public String searchUserList() {
    String userName = request.getParameter("userName");
    String id = request.getParameter("id"); // 獲取原始 id
    // 業務邏輯...
    return SUCCESS;
}

核心原則:URL 參數鏈路完整性。每次跳轉/提交都要主動攜帶上下文所需的所有標識參數。

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