zoukankan      html  css  js  c++  java
  • Spring MVC 注解

    @RequestParam

    作用:修饰形参参数名称

    @RequestMapping("/user1")
    public String testRequestParam(@RequestParam(name = "name") String username){
        return username;
    }
    

    操作方法

    http://localhost:8080/user1?name=Test
    

    @RequestBody

    作用:用于获取请求体内容直接使用得到的是key=value&key=value的数据结构

    @RequestMapping("/user2")
    public String testRequestBody(@RequestBody String body){
    	return body;
    }
    

    操作方法

    http://localhost:8080/user2    [POST]
    POST:
    	body:"test"
    

    @PathVaribale

    作用:用于绑定url中的占位符,例如url请求中/delete/{id},这个{id}就是url占位符

    @RequestMapping("/user3")
    public String testPathVariable(@PathVaribale(name = "sid") String id){
        return id;
    }
    

    操作方法

    http://localhost:8080/user3/10
    

    @RequestHeader

    作用:用于获取请求的消息头

    @RequestMapping("/user4")
    public String testRequestHeader(@RequestHeader(value = "Accept") String header){
        return header;
    }
    

    操作方法

    http://localhost:8080/user4
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66
    

    @CookieValue

    作用:用于把指定的cookie名称的值传入控制器方法的参数

    @RequestMapping("/user5")
    public String testCookieValue(@CookieValue(value = "JSESSIONID") String cookieValue){
        return cookieValue;
    }
    

    操作方法

    http://localhost:8080/user5
    

    @ModelAttribute

    作用:它可以用于修饰方法和参数。出现在方法上,表示当前方法会在控制器的方法之前执行,它可以修饰没有返回值的方法,也可以修饰具有返回值的方法。出现在参数上,获取指定的数据给参数赋值。

    场景:当在编辑一个用户时,用户有一个创建信息字段,该字段的值是不允许被修改的。在提交表单数据是肯定没有此字段的内容,一旦更新会把该字段内容设置为null,此时就可以使用此注解解决问题

    @RequestMapping("/user6")
    public String testModelAttribute(User user){
        System.out.println("testModelAttribute执行了...");
        System.out.println(user);
        return "success";
    }
    
    /**
    * 该方法会先执行
    */
    @ModelAttribute
    public User showUser(String name){
        System.out.println("showUser执行了...");
        //通过用户查询数据库(模拟)
      	User user = new User();
        user.setName("test");
        user.setAge(20);
        user.setDate(new Date());
        return user;
    }
    
    @RequestMapping("/user7")
    public String testModelAttribute(@ModelAttribute("abc") User user){
        System.out.println("testModelAttribute执行了...");
        System.out.println(user);
        return "success";
    }
    
    /**
    * 该方法会先执行
    */
    @ModelAttribute
    public void showUser(String name,Map<String,User> map){
        System.out.println("showUser执行了...");
        //通过用户查询数据库(模拟)
      	User user = new User();
        user.setName("test");
        user.setAge(20);
        user.setDate(new Date());
        map.put("abc",user);
    }
    

    @SessionAttribute

    作用:用于多次执行控制器方法间的参数共享
    属性: value-属性名称,type-存入的数据类型

    @Controller
    @SessionAttributes(value = {"msg"}) //把msg存入到session域中
    public class UserController{
    	/**
    	* SessionAttributes的注解
    	* 
    	*/
    	@RequestMapping("/user8")
    	public String testSessionAttribute(Model model){
        	System.out.println("testSessionAttribute...");
            model.addAttribute("msg","成功");
        	return "success";
    	}
        
        /**
        * 获取session域中msg值
        */
        @RequestMapping("/user9")
    	public String getSessionAttribute(ModelMap modelMap){
        	System.out.println("getSessionAttribute...");
            String msg = (String) modelMap.get("msg");
            System.out.println(msg);
        	return "success";
    	}
        
        /**
        * 删除session域中全部信息
        */
        @RequestMapping("/user10")
    	public String delSessionAttribute(SessionStatus status){
        	System.out.println("delSessionAttribute...");
            status.setComplete(); //执行清除
        	return "success";
    	}
    }
    
  • 相关阅读:
    C#项目完成PDF文件增加印章操作可指定印章位置
    webBrowser1加载本地文件
    转义示例
    动态调用WebService服务
    C#调用WSDL接口
    VS 控件命名规范
    正则判断是否是数字
    怎么让 arcgis 4 弹出窗 漂亮 支持多个弹出窗 支持vue或者react
    关于arcgis 会主动添加https头的问题
    arcgis 4 整合 d3 实现动画
  • 原文地址:https://www.cnblogs.com/MineLSG/p/14354224.html
Copyright © 2011-2022 走看看