zoukankan      html  css  js  c++  java
  • 简单理解使用常见的注解

    1. @RestController 和@Controller
    控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后,返回给前台页面
    @Controller 的作用 :声明这是一个controller类,然后使用@RequestMapping ,@ResponseBody等一些注解用以定义URL 请求和Controller 方法之间的映射,使Controller 被前端访问。
    @Controller
    public class testController {
      @ResponseBody
      @RequestMapping("/hello")
      public String hello() {
        return "Hello World";
      }
    }
    @RestController : 从spring4.0版本开始出现.看下图的官方解释,会发现,@RestController 其实已经包含了@Controller 和@ResponseBody ,会默认使用@ResponseBody
    @RestController
    public class testController {
      @RequestMapping("/hello")
      public String hello() {
        return "Hello World";
      }
    }
    注意 : 其中@ResponseBody会处理返回的数据格式,使用了该类型注解后返回的不再是视图,不会进行转跳,而是返回json或xml数据格式,输出在页面上。
    如果在类上使用@Controller注解, 可以在需要的方法上单独添加@ResponseBody ,而使用@RestController相当于在所有的方法上都默认使用了@ResponseBody注解
     
    2. @RequestParam @RequestBody @PathVariable 常用参数绑定注解
    @PathVariable 直接通过URL传参时使用,URL形式:http://localhost:port/path/参数
     
    @RestController
    @RequestMapping("demo")
    public class testController {
        @RequestMapping(value = "/hello/{name}/{age}", method = RequestMethod.GET)
        public String hello(@PathVariable("name") String name,@PathVariable("age") int myAge) {
            return "我是" + name +"年龄 " + myAge;
        }
    }    
    注意: 通过@PathVariable("***")的形式可以获取指定URL中的参数,此时可以修改变量的名字,如上面的age参数, 如果不需要修改参数名则可以按照URL中参数的顺序写成如下形式
    public String hello(@PathVariable String name,@PathVariable int age)
    如果是类上面的@RequestMapping("demo") 也添加一个参数,和方法上的获取使用是一样的
     
    @RequestParam也是通过把参数绑定到URL中,但是和@PathVariable有不同,形式为http://localhost:port/path?参数名=参数
     
    @RestController
    @RequestMapping("demo")
    public class testController {
      @RequestMapping(value = "/hello", method = RequestMethod.GET)
      public String hello(@RequestParam(value = "name", required = false, defaultValue = "null") String name) {
        return "我是" + name ;
      }
    }
    注意:@RequestParam中required是"是否必填", "false" 可以不带此参数, "defaultValue" 可以赋一个默认值.如果选择required = false ,URL中不带name=tom参数,不会报错. 如果写成@RequestParam(value = "name") 这样的形式,则不带name=tom参数就会报错.
     
    @RequestBody可以将请求体中的JSON字符串绑定到相应的bean上,也可以将其分别绑定到对应的字符串上。 
    @RestController
    @RequestMapping("demo")
    public class testController {
      @RequestMapping(value = "/hello", method = RequestMethod.POST)
      public String hello(@RequestBody RequestOrderVo requestOrderVo) {
        return "我是" + requestOrderVo.getName +"年龄 "+requestOrderVo.getAge;
      }
    }
    绑定对应字符串的就不再写了..
  • 相关阅读:
    【连载】【FPGA黑金开发板】Verilog HDL那些事儿VGA(二十)
    【黑金动力社区】【FPGA黑金开发板】Verilog HDL的礼物 Verilog HDL扫盲文
    FPGA黑金开发板勘误
    触发器入门(转)
    SQL Server 索引结构及其使用(三)[转]
    SQL Server 索引结构及其使用(一)(转)
    项目开发管理二(转)
    Ajax在网页中的简单应用
    Ajax简单介绍
    Asp.Net异步数据绑定
  • 原文地址:https://www.cnblogs.com/ly1102/p/7280038.html
Copyright © 2011-2022 走看看