• SpringMVC的其他注解


    基于Controller层的注解

    1、RequestMapper

       加在方法上, 给处理用户请求的方法绑定一个url

    属性:  value/path:  绑定的url    method: 默认就是get/post都能处理,  枚举类型, RequestMethod
    @RequestMapping(value="/sayHello.action",method = RequestMethod.GET)

       加在类上, 作为url上一级目录,  窄化请求

    @Controller
    @RequestMapping("/user")//窄化请求 url,项目名+user+sayHello.action
    public class UserController {

    2、@GetMapping    -->简化  (method = RequestMethod.GET)

      在方法上,  给方法绑定一个url,但是处理的请求方式只能get

    3、@PostMapping

      在方法上,  给方法绑定一个url,但是处理的请求方式只能post

    4、@RequestParam

      请求参数与方法参数进行映射

    如果前端没有传递这个相同name的数据类型, springMVC给参数赋的值是null,

    如果参数是基本数据类型, 会抛异常, 因为, 基本数据类型不能接收null

    如果请求参数的name与方法的参数名不一样, 想进行映射: 使用@RequestParam

    属性:
      >value/name: 请求参数的name
      >defaultValue: 默认值, 如果请求参数没有这个name值, 给方法参数赋默认值
    public ModelAndView findUser(@RequestParam(name = "uid",defaultValue = "33")int id) {
      >required: boolean类型, true, 表示请求参数必须有这个值,如果没有抛异常: 默认值false ,  False: 不是必须. 请求参数可有可无
    public ModelAndView findUser(@RequestParam(name = "uid",required = true)int id) {

    5、 @ModelAttribute

      加在方法上,    表示这个方法. 在每一次处理方法执行之前执行

    如果方法有返回值, 把这个返回值的结果保存Model(默认是:request域), key就是注解的name参数的值

    @ModelAttribute(name = "user")
        public User test1() {
            User user = new User();
            user.setId(1048);
            user.setUsername("王五");
            return user;
        }

      加在参数上,  表示从Model中获取对应name的值, 赋值给参数

    @RequestMapping("/fun3.action")
        // 表示user参数 获取的Model的name为user的值
        // 如果前端没有传递数据, 参数从Model中获取, 如果Model也没有, 赋值为null
        public ModelAndView fun3(@ModelAttribute("user") User user) {
            System.out.println("fun3....");
            ModelAndView modelAndView = new ModelAndView();
            System.out.println(user);
            modelAndView.setViewName("hello");
            return modelAndView;
        }

    6、@SessionAttributes

       加在Controller类上, 把model(request域)中的属性,拷贝一份存放到session域

    7、@SessionAttributes(names = {"user"})

      把Controller类上, 把model(request域)中的name为user的属性,拷贝一份存放到session域

    @Controller
    @RequestMapping("/test")
    @SessionAttributes(names = {"user","hello"})
    public class TestController {

    8、@PathVariable: 映射,加在参数上,  在RestFull风格使用到,把RestFull风格的url占位符映射到参数

    9、@RestController: 

  • 相关阅读:
    WERKZEUG之WSGI阅读笔记
    Express4+Mongodb超简单入门实例
    git 命令小结
    GreenSock Animation Platform
    Nodejs开发框架Express3.0开发手记–从零开始
    交互设计实用指南系列(1) – 操作入口明确
    交互设计实用指南系列(4)—简洁清晰,自然易懂
    交互设计实用指南系列(5) – 突出重点,一目了然
    交互设计实用指南系列(6) –标签明晰、有效
    交互设计实用指南系列(8)—深广度平衡
  • 原文地址:https://www.cnblogs.com/64Byte/p/13140167.html
Copyright © 2020-2023  润新知