nếu tôi có một ánh xạ yêu cầu tương tự như sau:
@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 bằng:
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 kiểu 'java.lang.String' thành kiểu '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 vấn đề này bằng cách ngăn ứng dụng khách javascript gửi các tham số trống hoặc bằng cách chấp nhận các giá trị chuỗi và chỉ phân tích cú pháp nếu chúng không được tìm thấy là trống.
CẬP NHẬT : Các 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 bây giờ trên thực tế sẽ biến giá trị null thành giá trị mặc định mà không cần tăng a NumberFormatException
, do đó; ánh xạ ban đầu của tôi bây giờ hoạt động tốt.
Tôi không chắc phiên bản nào của mùa xuân mà thay đổi hành vi này được thực hiện.
String
loại. user902383, đúng vậy, mặc dù đối với một giá trị số nguyên, tôi muốn giá trị null / rỗng sẽ sử dụng defaultValue thay thế.