Spring MVC是一个基于MVC架构的Web框架,它的主要作用是帮助开发者构建Web应用程序。它提供了一个强大的模型驱动的开发方式,可以帮助开发者实现Web应用程序的各种功能,如请求处理、数据绑定、视图渲染、异常处理等。
项目结构:
<!--SpringMVC环境依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.18.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<!--如果使用插件配置Tomcat,那么必须给Servlet依赖指定以下作用域-->
<scope>provided</scope>
</dependency>
//定义表现层控制器bean
@Controller
//responseBody注解设置当前操作返回结果为JSON数据
@ResponseBody
public class DemoController {
//设置映射路径
@RequestMapping("/demo")
public String show(){
System.out.println("user save....");
return "springMVC demo....";
}
}
@Configuration
//IOC组件扫描
@ComponentScan("com.yaorange.springmvcdemo1.controller")
//开启SpringMVC注解支持
@EnableWebMvc
public class SpringMVCconfig {
}
public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
//加载Spring配置,初始化Spring容器
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] {};
}
@Override
//加载SpringMVC配置,初始化SpringMVC容器
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[] {SpringMVConfig.class};
}
@Override
//配置SpringMVC处理请求的映射地址,配置/代表处理所有请求
protected String[] getServletMappings() {
return new String[] {"/"};
}
}
打开postman
如果点击发送后报错,那么查看返回体是否设置为JSON格式,或者可能后端没打开
正确运行结果:
@RequestBody注解的作用是将请求体中的数据绑定到后端方法的参数上。当客户端发送一个包含数据的请求体时,Spring框架会自动将该数据转换为Java对象,并将其作为参数传递给后端方法。
需要注意的是,在使用@RequestBody注解时,前端发送的请求方法必须是POST或PUT,因为GET请求没有请求体。此外,如果你希望在方法参数上使用@RequestBody注解,那么该参数的类型必须是一个Java对象,而不是基本类型或字符串。
@RequestParam它的作用是将HTTP请求参数绑定到Controller方法的参数上。这个注解通常用于处理GET、POST等请求,并且可以接收简单类型的属性。
@PathVariable是Spring 3.0中引入的新特性,用于接收URL路径中的参数。通过使用@PathVariable注解,可以将URL中的占位符参数绑定到控制器处理方法的参数上。
@RequestMapping的常用属性
@RequestParam注解通常有以下几个属性:
@PathVariable与@RequestParam的区别