2013-03-15 7 views
7

Zastanawiam się, jak wiosenne rozszczepienie poszczególnych parametrów żądania http. Poprzez przykład mam tej definicji metoda:Wiosenne wartości MVC @RequestParam nie są wyodrębniane z identyfikatora URI zgodnie z oczekiwaniami.

@RequestMapping(value = "/search.do", method = RequestMethod.GET) 
public String searchGet(ModelMap model, 
    @RequestParam(value = "memberId", required = false) Integer memberId, 
    @RequestParam(value = "member", required = false) String member) {...} 

i używać URL:

/search.do?member=T&O= 

otrzymuję członkiem = T, a nie członkiem = T & O =

params żądania są ograniczone tylko do memberId i member. Czy mogę skonfigurować sprężynę do rozwiązania tego problemu?

Odpowiedz

4

& służy do oddzielenia parametrów żądania.
URL zawierać żądania param name i wartości w następującym formacie

http://host_port_and_url?name1=value1&name2=value2&so_on

W twoim przypadku

/search.do?member=T&O= 

Name -> Wartość
członkiem -> T
O -> (Brak wartości - puste)
Dostajesz poprawne v alues ​​

4

Patrząc na kodzie kontrolera, adres URL powinien być

/search.do?memberId=T&member= 

Następnie poprosić nazwy parametrów dostanie odwzorowane prawidłowo.

Jeśli chcesz korzystać z tego samego adresu URL, jak wspomniano w pytaniu zmiana kodu kontroler do:

public String searchGet(ModelMap model, 
@RequestParam(value = "O", required = false) Integer memberId, 
@RequestParam(value = "member", required = false) String member) {...} 
10

Niektóre znaki w adresach URL mają szczególne znaczenie. Jeśli mają być częścią wartości, muszą zostać usunięte.

Jeśli twoja wartość to T & O = to należy zmienić na T% 26O% 3D

Powiązane problemy