小编SpringMVC默认的参数工具SpringMVC默认的参数工具是指,不用再另行创建,相称于SpringMVC内置工具,可以直接声明并利用默认的参数工具有:HttpServletRequest,HttpServletResponse,HttpSession,Model,Map,ModelMap把稳:Model,Map,ModelMap和HttpServletRequest工具一样都利用要求浸染域,以是在页面跳转时,只可以采取转发办法如果要采取重定向的办法完成页面跳转而且还要担保数据通报的精确性,只能利用HttpSession进行携带数据的页面跳转SpringMVC的项目配置和前面SpringMVC博集中(指SpringMVC 02)配置相同webapp/index.jsp:网站的首页,用来向后端发送一个大略的携带数据的get要求

<%@ page contentType="text/html;charset=UTF-8" language="java" %&gt;<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也可以在相应的页面中直接获取到随着前端要求携带而来的数据(携带而来的数据放在要求域中,转发是一次要求,要求域还在,自然可以获取到)

当掌握器中的action方法以重定向的办法跳转到webapp/admin/main.jsp页面时

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域中的数据

jsp页面跳转springmvcSpringMVC 05 SpringMVC中携带数据的页面跳转 GraphQL