2012-07-05 34 views
14

Không thể tìm thấy câu trả lời cho điều này thật đáng tiếc vì vậy hy vọng ai đó có thể trợ giúp.Nhiều @PathVariable trong Spring MVC

Trong Spring MVC 3.1.0 ở đây là phương pháp của tôi:

@RequestMapping(value = "/{app}/conf/{fnm}", method=RequestMethod.GET) 
public ResponseEntity<?> getConf(@PathVariable String app, @PathVariable String fnm) { 
    log.debug("AppName:" + app); 
    log.debug("fName:" + fnm); 
      ... 
      return ... 
    } 

Tôi đã nhìn thấy một số ví dụ trực tuyến và nó xuất hiện không có vấn đề có nhiều @PathVariables về mặt lý thuyết.

Tuy nhiên, khi tôi thực hiện, cả "ứng dụng" và "fnm" đều chứa cùng một giá trị (đó là bất kỳ giá trị nào được gán cho "ứng dụng").

Thực sự đánh giá cao bất kỳ thông tin chi tiết nào mà ai đó có thể gặp phải khi tôi đang gặp sự cố?

Cảm ơn!

+0

sẽ hoạt động, bạn chắc chắn bạn đang gọi chính xác? – NimChimpsky

Trả lời

24
@RequestMapping(value = "/{app}/conf/{fnm}", method=RequestMethod.GET) 
public ResponseEntity<?> getConf(@PathVariable("app") String app, @PathVariable("fnm") String fnm) { 
    log.debug("AppName:" + app); 
    log.debug("fName:" + fnm); 
      ... 
      return ... 
    } 

Các biến đường cơ bản cần phải được chỉ định bằng dấu ngoặc đơn, trong đối số phương pháp. Điều này có hữu ích không?

+0

Rất tiếc, tôi nên chỉ định điều đó. Tôi đã thử nghiệm mà không có tên biến, với tên biến và cũng cố gắng một cách rõ ràng (value = "_ some_pathvarname"). Tất cả đều tạo ra kết quả tương tự: ( – user1389920

+0

@ user1389920: Bạn đã thử url yêu cầu mã hóa với các giá trị khác nhau không? Ví dụ:/XYZ/conf/ABC và sau đó kiểm tra những gì được ánh xạ tới Bộ điều khiển? hình thành ... –

+0

Cảm ơn, đã tìm thấy vấn đề. Fnm đã bị cắt ngắn nên giá trị thử nghiệm trông giống nhau ... xin lỗi chút về bộ não bị mờ dần. Tôi có đúng regex ngay bây giờ và nó hoạt động, cảm ơn tất cả vì đã giúp đỡ! – user1389920