2013-10-04 24 views
12

benim Boole requestparam olduğunu dayanan Neden İlkbahar 3.2 yalnızca haritasını çıkarıyor "0" veya "1" nin 1 veya 0 dayalı? requestparam Ben "?preview=true" olmak istiyorumBahar @RequestParam haritalama Boole yerine doğru ya da yanlış

garip olduğunu "?preview=1" olduğunda

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

Önizleme sadece "true" olacaktır. Bunu nasıl yaparım?

+0

tamamen biz bile o istek parametresi için URL'ye bir şey koymak gerekmez, yani URL'de göz ardı edilebilir varsayılan değere sahiptir ve gerekli istek parametresi false bir yol, tanıyordu. Örneğinizde 'preview', URL’nin bir parçası bile olmayacaktır. –

cevap

8

Bahar gerçek,true olarak boole değerine 1, evet ve ... StringToBooleanConverter kontrol yorumlamak gerekir.

+0

, biz gerekli kapalı ve varsayılan bir değer sağlamak ve URL'de biz bile istek parametresi bahsetmek zorunda değilsiniz bir yolu var mı? –

+0

sorunu çözmek için yeterli olmalı {{@RequestParam (defaultValue = "true") boole} bildirmek}. – varra

40

Ben senin soruya cevap etkili olabilmek için daha fazla ayrıntı gerekebilir düşünüyorum.

I hattı boyunca Yay 3.2 kod çalışır:

@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 doğru ?bar=true, ?bar=1 veya gerçek olarak ?bar=yes ve ?bar=false, ?bar=0, ya da yanlış olarak ?bar=no yorumlar.

Doğru/yanlış ve evet/hayır değerler durumu dikkate almaz.

+0

EqualsIgnoreCase de yapar mı? Yani bar = DOĞRU ',' bar = TrUe 'veya' bar = yES 'gönderirseniz beklenen sonuç ne olurdu? –

+0

Aşağıdaki Pavel tarafından bağlanan soru koduna göre, bu durum dikkate alınmaz. – stenix