Spring @RequestParam mapping Boolean based on 1 or 0 instead of true or false
Why is Spring 3.2 only mapping my Boolean based on that the requestparam is "0" or "1" ?
@RequestParam(required= false, defaultValue = "false") Boolean preview
Preview will only be "true"
when the requestparam is "?preview=1"
which is wierd
I want it to be "?preview=true"
. How do I do that?
Solution 1:
I think we may need more detail in order to be effective answering your question.
I have working Spring 3.2 code along the lines of:
@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 correctly interprets ?bar=true
, ?bar=1
, or ?bar=yes
as being true, and ?bar=false
, ?bar=0
, or ?bar=no
as being false.
True/false and yes/no values ignore case.
Solution 2:
Spring should be able to interpret true, 1, yes and on as true
boolean value... check StringToBooleanConverter.