Spring @RequestParam映射布尔值基于1或0而不是true或false

Tom*_*mmy 25 spring boolean request http-request-parameters

为什么Spring 3.2只根据requestparam为"0"或"1"来映射我的布尔值?

@RequestParam(required= false, defaultValue = "false") Boolean preview
Run Code Online (Sandbox Code Playgroud)

预览只会"true"在请求参数"?preview=1"很奇怪的时候进行

我想要它"?preview=true".我怎么做?

Tyd*_*eus 61

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

我按照以下方式使用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)
{ 
    ... 
}
Run Code Online (Sandbox Code Playgroud)

春天正确解释?bar=true,?bar=1?bar=yes为真,和?bar=false,?bar=0?bar=no为假.

真/假和是/否值忽略大小写.


Pav*_*ral 12

Spring应该能够将true,1,yeson解释trueboolean值... check StringToBooleanConverter.

  • {{@RequestParam(defaultValue = "true") boolean notify}} 应该足以解决您的问题。 (2认同)