<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>index.jsp</title></head><body><a href="${pageContext.request.contextPath}/data.action?name=饺子">携带数据进行页面跳转</a></body></html>
webapp/admin/main.jsp如下:作为要求的终极相应页面,测试在经由页面跳转后,后端放入对应浸染域中的数据是否还有效
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>main.jsp</title></head><body><h2>显示页面跳转时携带的数据......</h2> <!-- 在经由页面跳转后,在跳转到的页面里,考试测验获取之前存放的数据-->request: ${requestUser}<br>httpSession: ${sessionUser}<br>model: ${modelUser}<br>map: ${mapUser}<br>modelMap: ${modelMapUser}<br> <!-- 考试测验直接获取要求地址中携带的参数数据-->param: ${param.name}</body></html>
创建SpringMVC掌握器:DataAction。在掌握器的action方法中利用SpringMVC内置工具,将数据存放到相应浸染域中
package com.example.controller;import com.example.pojo.User;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import java.util.Map;@Controllerpublic class DataAction { @RequestMapping("/data") //这几个参数都是SpringMVC内置的,可以直接声明利用 public String data(HttpServletRequest request, HttpSession httpSession, Model model, Map<Object, Object> map, ModelMap modelMap){ //User实体类含有两个属性:name(String), age(int)。无参布局方法。全属性的有参布局方法,getter,setter,toString方法 User user = new User("荷包蛋", 20); //将user工具利用各SpringMVC内置工具存放到相应浸染域中 request.setAttribute("requestUser", user); httpSession.setAttribute("sessionUser", user); model.addAttribute("modelUser", user); map.put("mapUser", user); modelMap.addAttribute("modelMapUser", user); //末了完成页面转发跳转 return "main"; }}
当掌握器中的action方法以转发的办法跳转到webapp/admin/main.jsp页面时支配并启动tomcat进行测试网站首页(left),相应页面(right):可见对付放入相应浸染域中的数据,在经由页面转发跳转后仍旧可以获取到之前存放的数据而且对付param也可以在相应的页面中直接获取到随着前端要求携带而来的数据(携带而来的数据放在要求域中,转发是一次要求,要求域还在,自然可以获取到)
package com.example.controller;import com.example.pojo.User;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import java.util.Map;@Controllerpublic class DataAction { @RequestMapping("/data") public String data(HttpServletRequest request, HttpSession httpSession, Model model, Map<Object, Object> map, ModelMap modelMap){ User user = new User("荷包蛋", 20); request.setAttribute("requestUser", user); httpSession.setAttribute("sessionUser", user); model.addAttribute("modelUser", user); map.put("mapUser", user); modelMap.addAttribute("modelMapUser", user); //末了完成页面的重定向跳转 return "redirect:/admin/main.jsp"; }}
网站首页(left),相应页面(right):可见对付放入相应浸染域中的数据,在经由页面重定向跳转后只有session域中可以获取到之前存放的数据由于本例中的重定向是两次要求,凡是放在第一次要求域中的数据,在第二次要求发起后,之前存放的数据对付第二次要求来说已经失落效,无法访问原来存放的数据,而由于浏览器并未关闭,则session域仍旧有效,可以精确获取之前存放在session域中的数据