Spring сопоставление @RequestParam Логическое значение, основанное на 1 или 0 вместо true или false

Почему Spring 3.2 только отображение моего булева на основе того, что requestparam является "0" или "1"?

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

Предварительный просмотр будет только "true", когда requestparam "?preview=1", который является wierd

Я хочу, чтобы он был "?preview=true". Как это сделать?

Ответ 1

Я думаю, нам может понадобиться более подробная информация, чтобы быть эффективными, чтобы ответить на ваш вопрос.

У меня есть работающий 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 как false.

Истинные/ложные и да/нет значения игнорируют регистр.

Ответ 2

Spring должен иметь возможность интерпретировать true, 1, yes и on как true boolean value... check StringToBooleanConverter.