springmvc重定向後jsp如何獲取其中的flashAttribute?
阿新 • • 發佈:2019-02-03
大家都知道我們在springmvc3.1以後可以利用RedirectAttributes在action重定向後來進行資料傳遞,來解決困擾大家許久的action之間跳轉資料丟失的問題。
那麼我們如何在action重定向到jsp頁面後通過EL表示式獲取其中的引數呢?
當然你也可以使用attribute來進行頁面資料的傳遞但是會拼接到url中,直接顯示給使用者,會有一定的安全問題。
測試程式碼:
TestController.java
@RequestMapping(value = "/test", method = {RequestMethod.GET}) public String ajaxSubmit(HttpServletRequest request, HttpServletResponse response, final RedirectAttributes directAttributes) { // FlashAttribute頁面重定向後資料儲存在FlashMap中 directAttributes.addFlashAttribute("test", "0001"); // Attribute頁面重定向後資料拼接到url後 directAttributes.addAttribute("test1", "0002"); return "redirect:/index.jsp"; }
index.jsp
解釋:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html> <body> <a href="account/test">TEST</a> <br> test: ${sessionScope['org.springframework.web.servlet.support.SessionFlashMapManager.FLASH_MAPS'][0]['test']} <br> test1: ${param.test1} </body> </html>
一開始我們使用attribute進行資料傳遞,但是會拼接到url所以想到使用flash attribute 但是不知道如何獲取在頁面中,最後debug
才知道如何獲取其中的值
取值EL表示式:
${sessionScope['org.springframework.web.servlet.support.SessionFlashMapManager.FLASH_MAPS'][0]['test']}
ok,結束