zoukankan      html  css  js  c++  java
  • 第五天:SpringMVC常用注解

    (一)常用注解

    1@RequestParam

    @RequestParam主要用于在SpringMVC后台控制层获取参数时,前端传入的参数和方法形参不一致时。

    它支持三个属性:

    value:默认属性,用于指定前端传入的参数名称

    required:用于指定此参数是否必传

    defaultValue:当参数为非必传参数且前端没有传入参数时,指定一个默认值。

    public void demo1(

    @RequestParam(value = "name",required = false,defaultValue = "sss") String username){

    }

     

    2@RequestHeader

    @RequestHeader主要用于从请求头中获取参数。它支持的属性跟@RequestParam一样

    public String demo2(@RequestHeader("cookie") String cookie){}

     

    3@CookieValue

    @CookieValue 用于从cookie中取值。

    public String demo3(@CookieValue("JSESSIONID") String jsessionid){}

     

    4@RequestBody

    @RequestBody用于接收前端传入的消息体,注意:只有POST请求才有消息体。

     

    <form method="post" action="${pageContext.request.contextPath}/demo4">

    <input type="text" name="name" value="zhangsan">

    <input type="submit">

    </form>

     

    public String demo4(@RequestBody String body){

    }

     

     

    它的另一个主要用法是用于接收Ajax提交的异步数据。

    <script type="application/javascript" language="JavaScript" src="js/jquery.js"></script>

    <script>

    $(function () {

    $("#sub").click(function () {

    $.ajax({

    type:"POST",

    url:"${pageContext.request.contextPath}/demo6",

    contentType:"application/json",

    dataType:"json",

    data:'{"name":"admin","id":"1"}',

    success:function(data){}

    });

    });

    })

    </script>

     

    public String demo6(@RequestBody String body){}

    public String demo6(@RequestBody User user){}

     

    5@ResponseBody

    将我们的返回值异步响应为json数据

    @ResponseBody

    public List<Object> showInfo(){

    }

     

    面试题:@RequestBody@ResponseBody都是用来干什么的?

     

    6@SessionAttributes(value = { "a",”b”...})

    可以将ModelMap中共享的内容存放到session域中

    @SessionAttributes(value = { "a",”b”...})

    public class AnotationController {

    @RequestMapping("setSessionScope")

    public String setSessionScope(Map map,Model model, ModelMap modelMap, HttpServletRequest request) {

    map.put("a", "1");

    model.addAttribute("b", "2");

    modelMap.addAttribute("c", "3");

    mav.addObject("d", "4");

    request.setAttribute("e", "5");

    return "success";

    }

    }:

    7@ModelAttribute() 

    向请求域中添加信息

    (1)将这个注解放入到参数位置

    a.从表单中获取普通的数据,同时将这个数据以表单控件的名称为key放入到了请求域中

    b.表单的数据被封装成了一个自己定义pojo对象,注解中的key可以任意命名

    @RequestMapping("a4")

    public String a4(ModelMap modelMap,  String name) {

    return "success";

    }

    (2) 将这个注解放到方法上面

    注解中的key,任意赋值.

    作用: 为当前的controller 中所有的可以访问的方法提供公共数据.

    @ModelAttribute("dogs")

     public Object a6() {

    return list;

    }

    8@RequestMapping

    设置控制的访问路径

    @RequestMapping(value= {"a1"},method= {RequestMethod.GET,RequestMethod.PUT})

    9@PathVariable

    RESTREST是一种软件架构风格,或者说是一种规范,其强调HTTP应当以资源为中心。 它规范了HTTP请求动作,使用四个词语分别表示对资源的CRUD操作: GET(获取)POST(新建)PUT(更新)DELETE(删除)

     

    @PathVariable就是用来从Rest风格的URL中获取参数的注解

    //访问/demo7/Tom

    @RequestMapping("/demo7/{name}")

    public void demo7(@PathVariable String name){

    }

  • 相关阅读:
    深入了解css的行高Line Height属性
    Kafka消息队列
    架构图
    清理肠道好方法
    维特根斯坦
    ES查询DSL大于小于写法
    python虚拟环境
    Dockerfile
    flask基本使用
    泛型类多个类型参数的定义
  • 原文地址:https://www.cnblogs.com/masterhxh/p/13859457.html
Copyright © 2011-2022 走看看