Tôi muốn so sánh hai loại khác nhau trong thẻ <c:if>
của JSP. Về cơ bản còn lại một là Number
luôn nhưng bên phải là một chuỗi và nếu chuỗi đó có thể phân tích cú pháp số tôi không nhận được lỗi nhưng nếu chuỗi không thể được phân tích cú pháp thành Number
tôi nhận được javax.el.ELException: Cannot convert No of type class java.lang.String to class java.lang.Long
.Hành vi của nhà điều hành so sánh JSP
Thực tế:
$ {1 == ""} // hoạt động tốt
$ {1 == "4"} // hoạt động tốt
$ {1 == "Yes"} // kích hoạt Ngoại lệ.
Nhưng ngay cả lần so sánh thứ 3 cũng hoạt động tốt trong các phiên bản trước của JSP nhưng giờ đây nó gây ra ngoại lệ.
Hành vi của ==
có thay đổi theo thời gian không?
Bất kỳ lời đề nghị được đánh giá cao
có thể sử dụng nội bộ bộ chuyển đổi số nếu bạn sử dụng eq chắc chắn rằng không ném một lỗi. – ZaoTaoBao
không. Ngay cả eq ném cùng một ngoại lệ trong các phiên bản JSP mới –