@InitBinder

@InitBinder,这个注解相当于输入输出参数的一个转换,把下面的方法放在spring的bean中就可以生效了,下面的例子是把前端传递的时间戳转换为date,之后响应的时候吧date转换为时间戳。

@InitBinderprotected void initBinder(WebDataBinder binder) {binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {public void setAsText(String value) {setValue(new Date(Long.valueOf(value)));}public String getAsText() {return String.valueOf(((Date) getValue()).getTime());}});}
  1. @RestController

1. 概述

@RestController=@Controller + @ResponseBody。

1.1 @Controller

在一个类上加上这个注解,表示这个类是一个控制器。

1.2 @ResponseBody

在请求方法上加上这个注解,控制器就会将请求响应的数据以指定的格式写入到Response的body中去。

1.3 所以说@RestController就是注册一个控制器,并且将响应的数据以指定的格式写入到Response的body中。

2. 附加

2.1 @RestController注解可以使用在类或者方法上。

@RestController
public class HelloController {@RequestMapping(value="/hello",method= RequestMethod.GET)public String sayHello(){return "hello";}
}

上面代码部分等同于下面:

@Controller
@ResponseBody
public class HelloController {@RequestMapping(value="/hello",method= RequestMethod.GET)public String sayHello(){return "hello";}
}

@RequestMapping

@RequestMapping此注解即可以作用在控制器的某个方法上,也可以作用在此控制器类上。

当控制器在类级别上添加@RequestMapping注解时,这个注解会应用到控制器的所有处理器方法上。处理器方法上的@RequestMapping注解会对类级别上的@RequestMapping的声明进行补充。

  • @RequestMapping可以指定GET、POST请求方式
  • @GetMapping等价于@RequestMapping的GET请求方式

例子一:@RequestMapping仅作用在处理器方法上

@RestController
public class HelloController {@RequestMapping(value="/hello",method= RequestMethod.GET)public String sayHello(){return "hello";}
}

以上代码sayHello所响应的url=localhost:8080/hello。

例子二:@RequestMapping仅作用在类级别上

/*** Created by wuranghao on 2017/4/7.*/
@Controller
@RequestMapping("/hello")
public class HelloController {@RequestMapping(method= RequestMethod.GET)public String sayHello(){return "hello";}
}

以上代码sayHello所响应的url=localhost:8080/hello,效果与例子一一样,没有改变任何功能。

例子三:@RequestMapping作用在类级别和处理器方法上

/*** Created by wuranghao on 2017/4/7.*/
@RestController
@RequestMapping("/hello")
public class HelloController {@RequestMapping(value="/sayHello",method= RequestMethod.GET)public String sayHello(){return "hello";}@RequestMapping(value="/sayHi",method= RequestMethod.GET)public String sayHi(){return "hi";}
}

这样,以上代码中的sayHello所响应的url=localhost:8080/hello/sayHello。

sayHi所响应的url=localhost:8080/hello/sayHi。

从这两个方法所响应的url可以回过头来看这两句话:当控制器在类级别上添加@RequestMapping注解时,这个注解会应用到控制器的所有处理器方法上。处理器方法上的@RequestMapping注解会对类级别上的@RequestMapping的声明进行补充。

最后说一点的是@RequestMapping中的method参数有很多中选择,一般使用get/post.

其中,各注解的作用为:

@PathVaribale 获取url中的数据

@RequestParam 获取请求参数的值

@GetMapping 组合注解

1.@RequestBody(POST专用)用的最多的注解,该注解与@RequestParam作用类似,区别在于将①传来的多个参数用Map或Entity统一接收,而不用对每个参数分别写注解;②application/json传来的Json字符串的处理;

2.@RequestHeader:获取Header信息;

3.@CookieValue:获取Cookie值。

参考: RestController注解学习_一品_人生的博客-CSDN博客_restcontroller注解

前后端传递参数类型的转换_技术武器库的博客-CSDN博客

SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍_HelloWorld_EE-DevPress官方社区

controller 之@...相关推荐

  1. go系列(5)- beego自己写controller

    前边的系列文章已经讲述了如何安装环境, beego的处理逻辑都是在Controller里面完成的,下面就写一个最简单的Controller. 我们在写自己的controller的时候,一定要继承bee ...

  2. @Controller和@RestController的区别?

    @RestController注解相当于@ResponseBody + @Controller合在一起的作用 1) 如果只是使用@RestController注解Controller,则Control ...

  3. 关于Page翻页效果--Page View Controller

    Page View Controllers 你使用一个page view controller用page by page的方式来展示内容.一个page view controller管理一个self- ...

  4. mvc ajax提交html标签,asp.net-mvc – 如何使用ajax get或post在带有参数的mvc中将数据从View传递到Controller...

    我试图使用ajax将数据从View传递到Controller Action Method,如下所示: – 我有一个用户的Membership实例,我从另一个控制器传入这个视图,使用的视图有点像这个Vi ...

  5. spring 两次进入拦截器_4.SpringBoot 拦截器Fliter,Interceptor,Controller……

    在项目的开发中,在某些情况下,我们需要对客户端发出的请求进行拦截,常用的API拦截方式有Fliter,Interceptor,ControllerAdvice以及Aspect. 上面的图是Spring ...

  6. gvgai框架搭建及controller编写

    gvgai框架搭建及controller编写 gvgai框架搭建 controller编写 gvgai框架搭建 gvgai官网:http://www.gvgai.net/ 框架下载:http://ww ...

  7. Animation Override Controller动画重载器

    假设游戏有很多个小人, 每一个人有2种动画站立,跑.  在通常情况下每一个人物都需要一个动画控制器. 有没有想过定义一个动画控制器 无须在定义全新的动画充值器实现每一个小人都播放自己的动画呢?没错An ...

  8. Ext.app.controller的refs

    简 单来说,就是4.0建议的MVC中controller引用组件的一种方式,selector中设置组件,可以用id.classname,但推荐用 ComponentQuery("组件检索&q ...

  9. java注解返回不同消息,Spring MVC Controller中的一个读入和返回都是JSON的方法如何获取javax.validation注解的异常信息...

    Spring MVC Controller中的一个读入和返回都是JSON的方法怎么获取javax.validation注解的错误信息? 本帖最后由 LonelyCoder2012 于 2014-03- ...

  10. controller不跳转页面的几个原因_光知道SpringBoot,不用thymeleaf就太不对了

    之前的时候,我为了演示Linux配置提交项目执行环境,简单的整理了一下springboot得相关内容,但是在实际的开发过程中,SpringBoot得使用可不仅仅就是这一点点遍历而已,在SpringBo ...

最新文章

  1. javascript html 生成 pdf
  2. JAVA框架--hibernate、struts2、spring
  3. 如何进行自动化PDF测试?这里有真正简单明了的方法
  4. 《python自动化》学习笔记:电话地址和E-mail地址提取程序
  5. 【shell基础】条件测试
  6. 目录2. 计算机 13. 计算机智能 24. 软件 25. 操作系统 36. 互联网 37. 软件产业 38. 软件演示 49. 软件专利 410. 复杂性 411. 易用性
  7. Lucene Automaton(三)
  8. 网课答案查询单页源码+免费题库API接口
  9. 我的世界 服务器文件ess,求助服务器ess插件报错怎么解
  10. 谷歌语音合成_如何修改Google语音合成语音
  11. 谈谈如何写好一份简历
  12. 耳朵大寿命长 由耳可辨疾病
  13. 人工客服真的是真人吗?
  14. [Java学习] 最小生成树——Prim算法
  15. 联想服务器TS130主板芯片组,【ThinkServer TS130参数】ThinkServer TS130系列服务器参数-ZOL中关村在线...
  16. PowerPoint Quick Tips PowerPoint快速提示 Lynda课程中文字幕
  17. 【Get深一度】dB、dBm、dBW和W换分别代表的含义及换算关系
  18. Python 创建能根据输入计算BMI指数的函数
  19. oracle原理视频,[Oracle] 甲骨论 价值1.67万的Oracle视频课程 共46节课
  20. MQL4课程-市场信息函数

热门文章

  1. 疫情下的安全区,ICC算一个吗?
  2. [转]PROE传动链条的装配教程
  3. 1000!末尾 有几个0
  4. 从代码层面分析STM32 标准库和HAL库的差异
  5. 从零开始学微信小程序开发:1
  6. 使用DevExpress的PdfViewer控件加载http传输文件
  7. Markdown 编辑公式
  8. HP笔记本功能键(f1-f12)与fn键的使用
  9. python的日志模块:logging;django的日志系统;django日志输出时间修改
  10. 数据库SQL实战 --42.将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005