最新公告
  • 欢迎您光临编程知识分享网 加入我们
  • @RequestHeader 的使用

    @RequestHeader 的使用

     

    @RequestHeader 是获取请求头中的数据,通过指定参数 value 的值来获取请求头中指定的参数值。其他参数用法和 @RequestParam 完全一样,请参考 @RequestParam 的章节:使用 @RequestParam 将请求参数绑定至方法参数

    下面举一个 基本使用 的例子:

    @Controller
    public class handleHeader {
    
        @GetMapping("/getHeader")
        public String getRequestHeader(@RequestHeader("User-Agent") String agent) {
            System.out.println(agent);
            return "success";
        }
    
    }
    

    你可以使用 @RequestParam 注解将请求参数绑定到你控制器的方法参数上。

    在这之前你需要知道,不加 @RequestParam 注解,直接给方法一个跟 request 中参数名相同的方法参数一样可以获取到 request 中的参数值,而且如果参数值为空的情况下默认为 null 且不会报错:

    @Controller
    public class EditPetForm {
    
        @GetMapping("/pets")
        public String setupForm(Integer petId) {
            System.out.println(petId);
            return "petForm";
        }
    
    }

    基础用法:

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    
    @Controller
    public class EditPetForm {
    
        @GetMapping("/pets")
        public String setupForm(@RequestParam int petId) {
            System.out.println(petId);
            return "petForm";
        }
    
    }

    required 参数
    若参数使用了该注解,则该参数默认是必须提供的,但你也可以把该参数标注为非必须的:只需要将 @RequestParam 注解的 required 属性设置为 false 即可:

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    
    @Controller
    public class EditPetForm {
    
        @GetMapping("/pets")
        public String setupForm(@RequestParam(value = "petId", required = false) Integer petId) {
            System.out.println(petId);
            return "petForm";
        }
    
    }

    注意:这里使用的 required = false 是将请求的参数设置为 null ,所以方法里的参数需要为引用类型(Integer),如果使用的是基本类型(int)会出现以下错误:

     

    java.lang.IllegalStateException: Optional int parameter ‘petId’ is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type. defaultValue 参数 @RequestParam 还有一个参数 defaulValue 使用它可以指定如果参数为空的情况下的默认参数:

    
        @GetMapping("/pets")
        public String setupForm(@RequestParam(value = "petId", required = false, defaultValue = 0) Integer petId) {
            System.out.println(petId);
            return "petForm";
        }

     

    赞赏

    微信赞赏支付宝赞赏

    编程知识分享网,一个有趣的平台!
    编程知识分享|编程教程|资源下载|源码下载 » @RequestHeader 的使用

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    关于编程知识分享网(www.ittce.com)
    编程知识分享网,一个有趣的平台,小心有毒!

    发表评论

    提供最优质的资源集合

    立即查看 了解详情
    升级SVIP尊享更多特权立即升级