2013-03-15 36 views
7

Tôi tự hỏi làm thế nào mùa xuân tách từng thông số của một yêu cầu http. Bằng ví dụ tôi có định nghĩa phương pháp này:Giá trị Spring MVC @RequestParam không được trích xuất từ ​​URI như mong đợi

@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) {...} 

và tôi sử dụng url này:

/search.do?member=T&O= 

tôi nhận được thành viên = T và không thành viên = T & O =

Các params yêu cầu là giới hạn chỉ thành viên memberId và thành viên. Tôi có thể định cấu hình lò xo để giải quyết vấn đề này không?

Trả lời

4

& được sử dụng để tách riêng các tham số yêu cầu.
URL chứa tên param yêu cầu và giá trị trong sau định dạng

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

Trong trường hợp của bạn

/search.do?member=T&O= 

Tên -> Giá trị
thành viên -> T
O -> (Không có giá trị- Trống)
Vì vậy, bạn đang nhận đúng v alues ​​

4

Nhìn vào mã điều khiển của bạn, URL của bạn cần phải có được

/search.do?memberId=T&member= 

Sau đó, yêu cầu tên tham số sẽ được ánh xạ một cách chính xác.

Nếu bạn muốn sử dụng cùng một URL như đã đề cập trong câu hỏi của bạn, thay đổi mã điều khiển để:

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

Một số ký tự trong URL có một ý nghĩa đặc biệt. Nếu họ được cho là một phần của một giá trị họ cần phải được trốn thoát.

Nếu giá trị của bạn là T & O = thì cần thay đổi thành T% 26O% 3D

Các vấn đề liên quan