springmvc @requestbody_“步步精心”--Spring MVC的映射请求

4cef900f-3c01-4c2c-b909-2e6b99f9503f

一、SpringMVC常用注解

@Controller

负责注册一个bean 到spring 上下文中。

@Service

声明Service组件,例如@Service("myMovieLister")

@Repository

声明Dao组件。

@Component

泛指组件, 当不好归类时使用此注解。

@Resource

用于注入,( j2ee提供的 ) 默认按名称装配,@Resource(name="beanName") 。

@Autowired

用于注入,(srping提供的) 默认按类型装配 。

@Transactional( rollbackFor={Exception.class})

事务管理。

@Scope("prototype")

设定bean的作用域。

@RequestMapping

注解为控制器指定可以处理哪些 URL 请求。

@RequestBody

该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上 ,再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

@ResponseBody

该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

@ModelAttribute

在方法定义上使用 @ModelAttribute 注解:Spring MVC 在调用目标处理方法前,会先逐个调用在方法级上标注了@ModelAttribute 的方法。

在方法的入参前使用 @ModelAttribute 注解:可以从隐含对象中获取隐含的模型数据中获取对象,再将请求参数 –绑定到对象中,再传入入参将方法入参对象添加到模型中 。

@RequestParam

在处理方法入参处使用 @RequestParam 可以把请求参 数传递给请求方法。

@PathVariable

绑定 URL 占位符到入参。

@ExceptionHandler

注解到方法上,出现异常时会执行该方法。

@ControllerAdvice

使一个Contoller成为全局的异常处理类,类中用@ExceptionHandler方法注解的方法可以处理所有Controller发生的异常。

二、@RequestMapping详解

1、映射请求 URL

Spring MVC 使用 @RequestMapping 注解为控制器指定可以处理哪些 URL 请求。在控制器的类定义及方法定义处都可标注。

@RequestMapping

– 类定义处:提供初步的请求映射信息。相对于 WEB 应用的根目录。

– 方法处:提供进一步的细分映射信息。相对于类定义处的 URL。若类定义处未标注 @RequestMapping,则方法处标记的 URL 相对于WEB 应用的根目录。

DispatcherServlet 截获请求后,就通过控制器上@RequestMapping 提供的映射信息确定请求所对应的处理方法。

@RequestMapping("/springmvc")

@Controller

public class HelloWorld {

/**

* 1. 使用 @RequestMapping 注解来映射请求的 URL

* 2. 返回值会通过视图解析器解析为实际的物理视图, 对于 InternalResourceViewResolver 视图解析器, 会做如下的解析:

* 通过 prefix + returnVal + 后缀 这样的方式得到实际的物理视图, 然会做转发操作。

*

* /WEB-INF/views/success.jsp------->对应的请求是类的@RequestMapping+方法的@RequestMapping

* 也就是/springmvc/helloworld

*

*/

@RequestMapping("/helloworld")

public String hello(){

System.out.println("hello world");

return "success";

}

}

2、映射请求参数、请求方法或请求头

@RequestMapping 的 value、method、params 及 heads分别表示请求 URL、请求方法、请求参数及请求头的映射条件,他们之间是与的关系,联合使用多个条件可让请求映射更加精确化。

示例:

-----

@RequestMapping(value = "/testMethod

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值