1. 程式人生 > >JS中獲取jsp頁面從後臺設定在request中的引數資訊

JS中獲取jsp頁面從後臺設定在request中的引數資訊

  • 需求:很多情況下,我們會在當前介面A選擇資料,然後點選按鈕跳轉至新的頁面B,在新的頁面中B需要根據前一個介面A中選擇的資料,而且我們傳送請求通常是通過JS程式碼。
  • 分析:
  1. A介面跳轉至B介面,如何將資料傳過去呢?
  2. A介面選擇的資料已傳至B介面,怎麼在JS中獲取到呢?
  • 解決方法:

  1. 首先A介面中選擇的資料在點選按鈕時,將引數傳至後臺(這是點選按鈕後,通過conntroller跳轉頁面的方法):

    @RequestMapping("toView")
    public String toView(){
        String param = request.getParameter("param");
        request.setAttribute("param", param);
        return "page/xxxxx";
    }

    後續跟進的問題:瞭解頁面的分發機制,即controller與jsp等頁面的分發原理;

  2. 在B介面中獲取後臺返回的引數資訊(例子為jsp頁面):

    <%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
    <html>
    <head>
    		<meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <%
            String param = (String)request.getAttribute("param");
        %>
        <script type="text/javascript" src="/js/xxxx.js"></script>
    </head>
    <body>
    	<input type="hidden" id="idTest" value="<%=param%>">
    </body>

    後續跟進的問題:瞭解jsp內建物件的作用域;

  3. 在JS頁面中獲取引數(即在xxxx.js中獲取):

    // 在函式外獲取到的為nudifined的
    var id = $("#idTest").val();
    
    $(document).ready(function (){
        // 在函式中是可以獲取到的
    	id = $("#idTest").val();
    		
    	alert(id);
    }

    後續跟進的問題:瞭解jsp等模板頁面引入js後的處理原理;

    寫在結束:條條道路通羅馬,分享以供參考。