文章目录
- SpringMVC数据处理及跳转详解
- 一、引言
- 二、数据处理
- 1、处理提交数据
- 1.1、同名参数接收
- 1.2、不同名参数接收
- 1.3、对象接收
- 2、数据显示到前端
- 2.1、通过ModelAndView
- 2.2、通过ModelMap
- 2.3、通过Model
- 三、结果跳转
- 1、ModelAndView跳转
- 2、ServletAPI跳转
- 3、SpringMVC跳转
- 3.1、无视图解析器
- 3.2、有视图解析器
- 四、总结
SpringMVC数据处理及跳转详解
一、引言
SpringMVC作为Spring框架的一部分,提供了一种简单而强大的方法来处理Web请求。本文将深入探讨SpringMVC中的数据接收、处理以及结果跳转的机制,并通过代码示例来详细说明这些概念。
二、数据处理
1、处理提交数据
在SpringMVC中,数据可以通过不同的方式从请求中接收到后端。以下是几种常见的数据接收方式:
1.1、同名参数接收
当表单中的字段名称与控制器方法的参数名称相同时,可以直接通过参数名来接收数据。
@RequestMapping("/hello")
public String hello(String name) {System.out.println(name);return "hello";
}
如果提交的数据是http://localhost:8080/hello?name=xiaotang
,则后台输出将是xiaotang
。
1.2、不同名参数接收
当表单中的字段名称与控制器方法的参数名称不一致时,可以使用@RequestParam
注解来指定。
@RequestMapping("/hello")
public String hello(@RequestParam("username") String name) {System.out.println(name);return "hello";
}
如果提交的数据是http://localhost:8080/hello?username=xiaotang
,则后台输出将是xiaotang
。
1.3、对象接收
当提交的数据是一个对象时,可以通过将表单字段与对象属性名对应起来,直接将对象作为参数。
public class User {private int id;private String name;private int age;// 构造、get/set、toString()
}@RequestMapping("/user")
public String user(User user) {System.out.println(user);return "hello";
}
如果提交的数据是http://localhost:8080/mvc04/user?name=xiaotang&id=1&age=15
,则后台输出将是User{id=1, name='xiaotang', age=15}
。
2、数据显示到前端
SpringMVC提供了多种方式将数据从后端传递到前端视图。
2.1、通过ModelAndView
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {ModelAndView mv = new ModelAndView();mv.addObject("msg", "ControllerTest1");mv.setViewName("test");return mv;
}
2.2、通过ModelMap
@RequestMapping("/hello")
public String hello(@RequestParam("username") String name, ModelMap model) {model.addAttribute("name", name);System.out.println(name);return "hello";
}
2.3、通过Model
@RequestMapping("/ct2/hello")
public String hello(@RequestParam("username") String name, Model model) {model.addAttribute("msg", name);System.out.println(name);return "test";
}
三、结果跳转
SpringMVC提供了多种方式来实现请求的跳转和重定向。
1、ModelAndView跳转
通过设置ModelAndView
对象的viewName
属性来指定跳转的视图。
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {ModelAndView mv = new ModelAndView();mv.addObject("msg", "ControllerTest1");mv.setViewName("test"); // 设置跳转的视图名称return mv;
}
2、ServletAPI跳转
使用HttpServletResponse
实现重定向和转发。
@RequestMapping("/result/t2")
public void test2(HttpServletRequest req, HttpServletResponse rsp) throws IOException {rsp.sendRedirect("/index.jsp");
}
3、SpringMVC跳转
SpringMVC提供了一种更简洁的方式来实现跳转和重定向。
3.1、无视图解析器
@RequestMapping("/rsm/t1")
public String test1() {return "/index.jsp";
}
3.2、有视图解析器
@RequestMapping("/rsm2/t1")
public String test1() {return "test";
}
四、总结
SpringMVC通过提供灵活的数据接收和显示机制,以及多种跳转方式,使得Web开发变得更加简洁和高效。理解这些基本概念和方法是掌握SpringMVC的关键。希望本文能够帮助开发者更好地理解和应用SpringMVC进行数据处理和结果跳转。
版权声明:本博客内容为原创,转载请保留原文链接及作者信息。
参考文章:
- SpringMVC (四) 数据处理及跳转-CSDN博客