@controller

通过@controller标注即可将class定义为一个controller类。

@RequestMapping

value 表示需要匹配的url的格式。
method 表示所需处理请求的http 协议(如get,post,put,delete等),可选值为RequestMethod这个enum的值。
params 格式为”paramname=paramvalue” 或 “paramname!=paramvalue”。 表示参数必须等于某值,或者不等于才进入此映射方法。不填写的时候表明不限制
headers 用来限定对应的reqeust请求的headers中必须包括的内容,例如headers={"Connection=keep-alive"}, 表示请求头中的connection的值必须为keep-alive。

@RequestParam

value 对应表单name空间的值
required 是否允许为空
defaultValue 默认值

@PathVariable

获得地址栏中传的参数 例如:

  1. @RequestMapping(value="/{groupId}.do")
  2. public void detail(@PathVariable long groupId){
  3. groupRepository.selectOne(groupId);
  4. }

@RequestBody

在参数之前加入@RequestBody注解。用来将指定的客户端发送过来的请求参数的数据格式转换成java实体

  1. @RequestMapping(value = "/xxxxx.do")
  2. public void create(@RequestBody() String host){
  3. System.out.println("-----------" + host);
  4. }

@RequestHeader

在参数之前加入@RequestHeader注解。用来将指定的请求头信息影射为方法的参数。

  1. @RequestMapping(value = "/xxxxx.do")
  2. public void create(@RequestHeader() MultiValueMap<String, String> host){
  3. System.out.println("-----------" + host);
  4. }

@ResponseBody

如果这个方法定义了@ResponseBody注解。那么会把返回值转换成这个数据格式,输出给客户端

  1. @RequestMapping(value = "/xxx.do")
  2. @ResponseBody
  3. public MultiValueMap<String, String> create(@RequestHeader() MultiValueMap<String, String> hosts) throws Exception {
  4. return hosts;
  5. }

@ResponseStatus
返回一个指定的http response状态码。

  1. @ResponseStatus(reason="no reason",value=HttpStatus.BAD_REQUEST)
  2. @RequestMapping("/responsestatus")
  3. public void responseStatusTest(){
  4. }

@SessionAttributes

写在类级别的注解,定义一个session attributes,属性名字为SessionAttributes指定。可以指定多个(数组),也同时可以指定类型。

  1. @Controller
  2. @SessionAttributes( { "user" })
  3. @RequestMapping("/test")
  4. public class ControllerTest {
  5. @RequestMapping("/session")
  6. @ResponseBody
  7. public String sessionIn(@ModelAttribute("user") User user) {
  8. return "index";
  9. }
  10. }
 

@CookieValue

  1. @RequestMapping("/cookie")
  2. @ResponseBody
  3. public String cookie(@CookieValue("JSESSIONID") String sessionId) {
  4. return sessionId;
  5. }

@InitBinder 

在controller中注册一个customer protperty editor以解析request中的参数并通过date bind机制与handler method中的参数做绑定。

  1. @InitBinder
  2. public void initBinder(WebDataBinder binder) {
  3. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
  4. dateFormat.setLenient(false);
  5. binder.registerCustomEditor(Date.class, new CustomDateEditor(
  6. dateFormat, false));
  7. }
  1. @RequestMapping("/databind1")
  2. public ModelAndView databind1(Date date) {
  3. }

访问url http://localhost:8080/springmvc/databind1.action?date=2000-01-02
通过initbinder中注册的customeDateEditor类型,自动将2000-01-02转换为日期类型

@ExceptionHandler

    1. @RequestMapping("/exception")
    2. public void ExceptionTest() throws Exception{
    3. throw new Exception("i don't know");
    4. }
    5. @ExceptionHandler
    6. public String handleException(Exception e,HttpServletRequest request){
    7. System.out.println(e.getMessage());
    8. return "helloworld";
    9. }

SpringMVC注解说明的更多相关文章

  1. springMVC注解初步

    一.(补充)视图解析器---XmlViewResolver 作用:分离配置信息. 在视图解析器---BeanNameViewResolver的基础之上进行扩充,新建一个myView.xml分离信息 在 ...

  2. SpringMVC注解开发初步

    一.(补充)视图解析器---XmlViewResolver 作用:分离配置信息. 在视图解析器---BeanNameViewResolver的基础之上进行扩充,新建一个myView.xml分离信息 在 ...

  3. SpringMVC注解汇总(二)-请求映射规则

    接上一节SpringMVC注解汇总-定义 讲到Httpy请求信息 URL路径映射 1)普通URL路径映射 @RequestMapping(value={"/test1", &quo ...

  4. springMVC注解启用及优化

    使用注解的原因 最方便的还是启用注解 注解方便,而且项目中很流行. 配置文件尽量减少,主要使用注解方式. Springmvc的注解是在2.5版本后有了注解,如何开启注解配置文件 Web.xml文件中不 ...

  5. 6.SpringMVC注解启用

    SpringMVC注解可以帮助我们快速地注入 属性和参数 提高开发效率. 由于 有相当一部分人讨厌xml配置方式 注解可以覆盖 xml则不能 使用注解比xml规范化,因为很多注解都是java的规范的范 ...

  6. springMVC(注解版笔记)

    springMVC(注解版) 较之于非注解版本,发生一下变化: 1.配置文件需要配置的标签有: <!-- 包的扫描,此包下面的所有包都启用注解 --> <context:compon ...

  7. springMVC 注解版

    http://blog.csdn.net/liuxiit/article/details/5756115 http://blog.csdn.net/hantiannan/article/categor ...

  8. 腾讯公司数据分析岗位的hadoop工作 线性回归 k-means算法 朴素贝叶斯算法 SpringMVC组件 某公司的广告投放系统 KNN算法 社交网络模型 SpringMVC注解方式

    腾讯公司数据分析岗位的hadoop工作 线性回归 k-means算法 朴素贝叶斯算法 SpringMVC组件 某公司的广告投放系统 KNN算法 社交网络模型 SpringMVC注解方式 某移动公司实时 ...

  9. Spring+SpringMVC+MyBatis深入学习及搭建(十六)——SpringMVC注解开发(高级篇)

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7085268.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十五)——S ...

  10. SpringMVC注解HelloWorld

    今天整理一下SpringMVC注解 欢迎拍砖 @RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是 ...

随机推荐

  1. ASP.NET MVC Filters 4种默认过滤器的使用【附示例】 数据库常见死锁原因及处理 .NET源码中的链表 多线程下C#如何保证线程安全? .net实现支付宝在线支付 彻头彻尾理解单例模式与多线程 App.Config详解及读写操作 判断客户端是iOS还是Android,判断是不是在微信浏览器打开

    ASP.NET MVC Filters 4种默认过滤器的使用[附示例]   过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响 ...

  2. 构建基于Javascript的移动web CMS——Hello,World

    在一篇构建基于Javascript的移动web CMS入门--简单介绍中简单的介绍了关于墨颀CMS的一些原理,其极框架组成.于是開始接着应该说明一下这个CMS是怎样一步步搭建起来. RequireJS ...

  3. 用python模拟TCP3次握手连接及发送数据

    源码如下: from scapy.all import * import logging logging.getLogger('scapy.runtime').setLevel(logging.ERR ...

  4. LeetCode(83)题解: Remove Duplicates from Sorted List

    https://leetcode.com/problems/remove-duplicates-from-sorted-list/ 题目: Given a sorted linked list, de ...

  5. 在OC项目中实现swift与oc混编 相互引用

    --------------------------------------------------------Begin--------------------------------------- ...

  6. 【BZOJ4952】lydsy七月月赛 E 二分答案

    [BZOJ4952]lydsy七月月赛 E 题面 题解:傻题...二分答案即可,精度有坑. #include <cstdio> #include <cstring> #incl ...

  7. 如何解决Apache无法启动的问题

    今天重装xampp后,一直无法启动Apache,提示以下错误: 22:36:54 [Apache] Attempting to start Apache app...22:36:54 [Apache] ...

  8. xcode7和ios9下UIWebView不能加载网页的解决方法

    错误描述: App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecu ...

  9. [CPP - STL] swap技巧

    最近在看<Effective STL>,[条款17:使用“交换技巧”修整过剩容量]中提到容器的成函数void swap(container& from),即实现容器对象与from对 ...

  10. python基础知识踩点

    1.注释 在python中,注释是以任何存在于#右侧的文字,其主要作用是写给程序读者看的笔记. 例如 单行注释 >>print("hello world") #这是一个 ...