nếu tôi có aa lập bản đồ theo yêu cầu tương tự như sau:Có thể có các giá trị RequestParam rỗng sử dụng defaultValue không?
@RequestMapping(value = "/test", method = RequestMethod.POST)
@ResponseBody
public void test(@RequestParam(value = "i", defaultValue = "10") int i) {
}
Và sau đó gọi yêu cầu này với:
http://example.com/test?i=
Tôi nhận được thông báo lỗi
Không thể chuyển đổi giá trị của gõ 'java.lang.String' để gõ 'int'; ngoại lệ lồng nhau là java.lang.NumberFormatException: Đối với chuỗi đầu vào: "" '
Tôi có thể giải quyết điều này bằng cách dừng máy khách javascript gửi thông số trống hoặc chấp nhận giá trị chuỗi và chỉ phân tích cú pháp nếu không tìm thấy để trống.
CẬP NHẬT: Phiên bản sau của mùa xuân hiện thực hiện hành vi mong muốn ban đầu.
Tôi vừa thử nghiệm điều này vào mùa xuân 4.3.5 và nhận thấy rằng hành vi giờ đây thực tế sẽ biến giá trị rỗng thành giá trị mặc định mà không tăng NumberFormatException
, do đó; bản đồ ban đầu của tôi bây giờ hoạt động tốt.
Tôi không chắc chắn phiên bản nào của mùa xuân thay đổi hành vi này đã được thực hiện.
chắc chắn tham số sẽ là loại Integer để tăng ngoại lệ đó? – laher
im chuyên gia không phải mùa xuân, nhưng giá trị mặc định được sử dụng khi bạn không đặt nó? tức là nếu yêu cầu của bạn sẽ là http://example.com/test? khi bạn sử dụng http://example.com/test?i= thì tôi hiện diện và được đặt thành "" để giá trị mặc định không được sử dụng – user902383
Cảm ơn amir75, vô tình cung cấp loại 'Chuỗi'. user902383, đó là chính xác, mặc dù cho một giá trị số nguyên tôi muốn rằng một giá trị null/trống sẽ sử dụng defaultValue thay thế. –