Spring @RequestParam 映射 boolean 基于 1 或 0 而不是 true 或 false

标签 spring request boolean http-request-parameters

为什么 Spring 3.2 仅基于 requestparam 为 "0"或 "1"映射我的 boolean 值?

@RequestParam(required= false, defaultValue = "false") Boolean preview

只有当请求参数是 "?preview=1" 时,预览才会是 "true",这很奇怪

我希望它是 "?preview=true"。我该怎么做?

最佳答案

我认为我们可能需要更多细节才能有效地回答您的问题。

我的 Spring 3.2 代码如下:

@RequestMapping(value = "/foo/{id}", method = RequestMethod.GET)
@ResponseBody
public Foo getFoo(
    @PathVariable("id") String id, 
    @RequestParam(value="bar", required = false, defaultValue = "true")
        boolean bar)
{ 
    ... 
}

Spring 正确地将 ?bar=true?bar=1?bar=yes 解释为 true,并且 ?bar=false?bar=0?bar=no 为假。

True/false 和 yes/no 值忽略大小写。

关于Spring @RequestParam 映射 boolean 基于 1 或 0 而不是 true 或 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19178820/

相关文章:

java - 使用 Jackson 解析 json 中的 boolean 值时的额外数据

java - 将日期参数从 html 表单发送到 thymeleaf 中的 Controller

java - 使用数据库@Entity 类进行 REST 公开?

java - 如何在 Spring 中将 xml bean 配置文件导入到 @configuration 类?

c# - boolean 与内存

java - 在方法内返回 True 或 false

java - Intellij 无法正确识别 Groovy 测试

python - Scrapy 请求返回 notImplementedError

node.js - 如何使用 node.js 发送 HTTP/2.0 请求

javascript - Node.js 下载文件 - 并非所有请求都能解析,Promise.all 不会触发