【问题标题】:Spring @RequestHeader defaultValue for header parameter that is not requiredSpring @RequestHeader defaultValue 用于不需要的标头参数
【发布时间】:2020-11-04 18:29:15
【问题描述】:

我正在尝试将默认值添加到可选的标头参数中,以便在它不存在时使用。但是,当不包含参数时,我注意到它没有填充默认值:

public Mono<User> getUser(
  @RequestHeader(value = "accept", defaultValue = "abc") String acceptHeader,
  ...
)

当我调试代码时,acceptHeader 是“/”,而没有指定参数。我在网上看了看,找不到任何原因说明为什么会发生这种情况。不确定这是否有区别,但我正在与 Postman 通话。有谁知道为什么会这样?我可以在getUser 中实现代码来处理这个逻辑,但我希望最好使用注释。

【问题讨论】:

    标签: java spring spring-boot controller request-headers


    【解决方案1】:

    / 是默认值,因此不为空,defaultValue = "abc" 不起作用。如果你想在 accept 值中没有放入任何内容时做某事,请使用 defaultValue = "abc" 代替它:

    if (acceptHeader.eqals("/") {
        ... do something 
    }
    

    【讨论】:

    猜你喜欢
    • 2021-12-18
    • 1970-01-01
    • 2018-07-29
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 2022-10-26
    • 1970-01-01
    相关资源
    最近更新 更多