web-dev-qa-db-ja.com

trueまたはfalseの代わりに1または0に基づくブール値をマッピングするSpring @RequestParam

なぜSpring 3.2はrequestparamが「0」または「1」であることに基づいてブール値のみをマッピングするのですか

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

プレビューは"true"になります(requestparamが"?preview=1"の場合のみ)

"?preview=true"にしたいです。それ、どうやったら出来るの?

23
Tommy

あなたの質問に効果的に答えるためには、もっと詳細が必要かもしれません。

私は次の行に沿って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として正しく解釈します。

True/falseおよびyes/noの値は大文字と小文字を区別しません。

57
Tydaeus

Springはtrue1yesandonas true boolean value ... check- StringToBooleanConverter

12
Pavel Horal