作用域保存 java_SpringMVC:向request作用域存储数据

一.  数据准备

首先在jsp文件中,显示request作用域中的指定数据:

html>

Title

 ${requestScope.user}

二:使用Map

我们将map作为方法的参数,然后在方法中把数据直接put进map,即可把数据存入request作用域。

package io.zhangjia.springmvc.controller;

import io.zhangjia.springmvc.controller.entity.User;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Map;

@Controller

public class Test {

@RequestMapping("/test")

public String test(User user, Map map) {

System.out.println("user = [" + user + "]");

map.put("user", user);

return "test";

}

}

三:使用Model

使用Model的方法也很简单,只需要将Model作为参数传入test方法,然后调用addAttribute方法即可

package io.zhangjia.springmvc.controller;

import io.zhangjia.springmvc.controller.entity.User;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Map;

@Controller

public class Test {

@RequestMapping("/test")

public String test(User user, Model model) {

System.out.println("user = [" + user + "]");

model.addAttribute("user", user);

return "test";

}

}

四:使用ModelAndView

使用ModelAndView之前,需要先将test方法的返回值修改为ModelAndView,而且test方法中不需要传入额外的参数。

setViewName("test")相当于上面几种方法中的return "test"

package io.zhangjia.springmvc.controller;

import io.zhangjia.springmvc.controller.entity.User;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.ModelAndView;

import java.util.Map;

@Controller

public class Test {

@RequestMapping("/test")

public ModelAndView test(User user) {

System.out.println("user = [" + user + "]");

ModelAndView modelAndView = new ModelAndView();

modelAndView.setViewName("test"); //相当于 return "test";

modelAndView.addObject("user", user);

return modelAndView;

}

}

五:使用HttpServletRequest

这种方法也是我们在没有学习Spring之前所采用的的最原始的方法,只需要将HttpServletRequest作为参数传入test方法,即可使用request,如果需要获取Session等资源,都可以采用这种方法

package io.zhangjia.springmvc.controller;

import io.zhangjia.springmvc.controller.entity.User;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;

import java.util.Map;

@Controller

public class Test {

@RequestMapping("/test")

public String test(User user, HttpServletRequest request) {

System.out.println("user = [" + user + "]");

request.setAttribute("user", user);

return "test";

}

}

六.  总结

1.  Map

添加 Map map 作为形参

将需要存入request作用域的数据put进map中: map.put("xxx", xxx),即可完成存入

2.  Model

添加  Model model 作为形参

使用model.addAttribute("xxx", xxxx),即可将需要存入request作用域的数据存入

3.  ModelAndView

不需要添加形参,但是需要修改方法的返回类型为ModelAndView

新建Model对象:ModelAndView modelAndView = new ModelAndView();

使用modelAndView.addObject("xxx", xxxx)即可将需要存入request作用域的数据存入

4.  HttpServletRequest

添加 HttpServletRequest request 作为形参

使用request.setAttribute("xxx", xxxx)即可将需要存入request作用域的数据存入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值