springMVC返回数据到页面的几种方式

Spring MVC返回数据到页面有几种不同的方式,它们各自适用的情况也不同,下面简单总结一下。

对于每种方式都给出Controller中的相应方法。

首先还是页面user_add.jsp。它既是发出请求的页面,也是接收返回结果的页面:

<%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%>
<html>
  <head>
    <title></title>
  </head>
  <body>
    <h1>添加用户信息4</h1>
    <form action="user/add4.do" method="post">
    	<input type="submit" value="提交">
    </form>
    ${personId }
  </body>
</html>

1、通过request对象:

@RequestMapping("/add.do")
public String add(HttpServletRequest request){
	request.setAttribute("personId",12);
	return "user_add";
}

2、通过ModelAndView对象:

@RequestMapping("/add.do")
public ModelAndView add(){
	ModelAndView mav = new ModelAndView("user_add");
	mav.addObject("personId", 12);
	return mav;
}

3、通过Model对象:
@RequestMapping("/add.do")
public String add(Model model){
	model.addAttribute("personId", 12);
	return "user_add";
}
4、通过Map对象:
@RequestMapping("/add.do")
public String add(Map<String,Object> map){
	map.put("personId", 12);
	return "user_add";
}
Spring MVC中,页面跳转可以通过以下几种方式进行: 1. **使用RedirectView**:当控制器方法返回`RedirectView`实例时,Spring MVC会自动执行HTTP重定向到指定URL。例如: ```java RedirectView redirect = new RedirectView("/success"); return redirect; ``` 2. **使用ModelAndView**:可以将`ModelAndView`对象作为结果返回,然后在视图层进行跳转。`ModelAndView`对象包含了模型数据和视图名称,例如: ```java ModelAndView modelAndView = new ModelAndView("redirect:/success", "modelAttribute", model); ``` 3. **使用`@GetMapping`或`@PostMapping`+`return`**:利用`@RequestMapping`注解,直接在方法体内部设置响应的状态码(`ResponseStatus`),比如`RedirectView`或`ForwardView`,例如: ```java @GetMapping("/redirect") public String redirect() { return "redirect:/success"; } ``` 4. **使用`@GetMapping`或`@PostMapping`+`forward()`**:如果需要在当前请求上下文中转发(保留请求信息),可以使用`ModelAndView.forward()`,如下所示: ```java @GetMapping("/forward") public void forward(Model model) { model.addAttribute("message", "Success"); request.getRequestDispatcher("/success").forward(request, response); } ``` 5. **使用JavaScript或HTML的`window.location.href`**:前端可以通过脚本控制页面跳转,但这不属于Spring MVC的范畴。 每种方式的选择取决于项目的具体需求以及你是否希望改变当前请求的地址还是只是传递数据并保持请求环境不变。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值