为什么 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/