Tôi đang sử dụng trình chỉnh sửa Spring CustomNumberEditor để liên kết các giá trị float của mình và tôi đã thử nghiệm rằng nếu giá trị không phải là số đôi khi nó có thể phân tích giá trị và không có lỗi nào được trả về.Spring CustomNumberEditor phân tích các số không phải là số
- number = 10 ...... thì số là 10 và không có lỗi
- number = 10a ...... thì số là 10 và không có lỗi
- number = 10a25 ...... thì số là 10 và không có lỗi
- số = a ...... lỗi vì số không hợp lệ
vì vậy, có vẻ như các biên tập viên phân tích giá trị cho đến khi nó có thể và bỏ qua phần còn lại. Có cách nào để cấu hình trình soạn thảo này để xác nhận là nghiêm ngặt (vì vậy các con số như 10a hoặc 10a25 dẫn đến lỗi) hay tôi phải xây dựng triển khai tùy chỉnh của mình. Tôi đang tìm kiếm một cái gì đó giống như thiết lập khoan dung để sai trong CustomDateEditor/DateFormat vì vậy ngày không thể được phân tích cú pháp để có thể xảy ra nhất.
Con đường tôi đăng ký biên tập là:
@InitBinder
public void initBinder(WebDataBinder binder){
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setGroupingUsed(false);
binder.registerCustomEditor(Float.class, new CustomNumberEditor(Float.class, numberFormat, true));
}
Cảm ơn.
Cảm ơn. Nhưng nếu tôi đã thực hiện tùy chỉnh của mình, tôi nghĩ rằng tôi có thể mở rộng lớp CustomNumberEditor và ghi đè phương thức setAsText nếu giá trị là một số như bạn làm và nếu nó đang xảy ra với super.setAsText – Javi