SpringMVC数据处理及跳转详解

文章目录

SpringMVC数据处理及跳转详解

一、引言

SpringMVC作为Spring框架的一部分,提供了一种简单而强大的方法来处理Web请求。本文将深入探讨SpringMVC中的数据接收、处理以及结果跳转的机制,并通过代码示例来详细说明这些概念。

二、数据处理

1、处理提交数据

在SpringMVC中,数据可以通过不同的方式从请求中接收到后端。以下是几种常见的数据接收方式:

1.1、同名参数接收

当表单中的字段名称与控制器方法的参数名称相同时,可以直接通过参数名来接收数据。

java 复制代码
@RequestMapping("/hello")
public String hello(String name) {
    System.out.println(name);
    return "hello";
}

如果提交的数据是http://localhost:8080/hello?name=xiaotang,则后台输出将是xiaotang

1.2、不同名参数接收

当表单中的字段名称与控制器方法的参数名称不一致时,可以使用@RequestParam注解来指定。

java 复制代码
@RequestMapping("/hello")
public String hello(@RequestParam("username") String name) {
    System.out.println(name);
    return "hello";
}

如果提交的数据是http://localhost:8080/hello?username=xiaotang,则后台输出将是xiaotang

1.3、对象接收

当提交的数据是一个对象时,可以通过将表单字段与对象属性名对应起来,直接将对象作为参数。

java 复制代码
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
java 复制代码
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
java 复制代码
@RequestMapping("/hello")
public String hello(@RequestParam("username") String name, ModelMap model) {
    model.addAttribute("name", name);
    System.out.println(name);
    return "hello";
}
2.3、通过Model
java 复制代码
@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属性来指定跳转的视图。

java 复制代码
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实现重定向和转发。

java 复制代码
@RequestMapping("/result/t2")
public void test2(HttpServletRequest req, HttpServletResponse rsp) throws IOException {
    rsp.sendRedirect("/index.jsp");
}

3、SpringMVC跳转

SpringMVC提供了一种更简洁的方式来实现跳转和重定向。

3.1、无视图解析器
java 复制代码
@RequestMapping("/rsm/t1")
public String test1() {
    return "/index.jsp";
}
3.2、有视图解析器
java 复制代码
@RequestMapping("/rsm2/t1")
public String test1() {
    return "test";
}

四、总结

SpringMVC通过提供灵活的数据接收和显示机制,以及多种跳转方式,使得Web开发变得更加简洁和高效。理解这些基本概念和方法是掌握SpringMVC的关键。希望本文能够帮助开发者更好地理解和应用SpringMVC进行数据处理和结果跳转。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

相关推荐
没书读了18 分钟前
ssm框架-spring-spring声明式事务
java·数据库·spring
小二·26 分钟前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic1 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
懒洋洋大魔王1 小时前
RocketMQ的使⽤
java·rocketmq·java-rocketmq
武子康1 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
qq_17448285751 小时前
springboot基于微信小程序的旧衣回收系统的设计与实现
spring boot·后端·微信小程序
转世成为计算机大神1 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式
qq_327342732 小时前
Java实现离线身份证号码OCR识别
java·开发语言
锅包肉的九珍2 小时前
Scala的Array数组
开发语言·后端·scala
心仪悦悦2 小时前
Scala的Array(2)
开发语言·后端·scala