Cách tốt nhất để xử lý các ngoại lệ "không được kiểm tra" trong một ứng dụng web JSF2 là gì?Xử lý ngoại lệ JSF2
Hiện tại, tôi để chúng chảy cho đến thùng chứa servlet và tôi chuyển hướng (thông qua tệp web.xml) đến trang lỗi jsp hiển thị thông báo thân thiện và thông tin ngoại lệ.
Tốt hơn là xử lý chúng bằng "trình xử lý ngoại lệ tùy chỉnh" (như Ed Burns đã nói trong sách "JSF 2.0 - Tham chiếu hoàn chỉnh").
Trong cả hai trường hợp ("web.xml" hoặc "xử lý ngoại lệ"): Tôi có phải chuyển hướng đến trang jsp thay vì trang facelet không? (bởi vì ngoại lệ có thể do một vấn đề jsf gây ra và có thể dẫn đến một vòng lặp). Hoặc tôi có thể chuyển hướng đến một trang facelet? Việc chuyển hướng đến trang jsp có bất lợi khi phải định cấu hình ứng dụng jsf để thừa nhận cả jsp và facelets (nó sẽ sạch hơn, chỉ có các trang facelet).
Cuối cùng, một câu hỏi khác: "Trình xử lý ngoại lệ tùy chỉnh" cũng xử lý các ngoại lệ "đã chọn"? Hiện tại, tôi xử lý chúng trong các bean được quản lý (bắt chúng và hiển thị một facemessage trong trang ứng dụng).
Cảm ơn bạn BaluC. Chỉ một câu hỏi: nó không phải là một thực tế xấu sau đó sử dụng một trang lỗi facelet? (chỉ hiển thị thông báo và thông tin ngoại lệ). Nó hoạt động ngay cả khi ngoại lệ được gây ra bởi khung công tác jsf? – choquero70
Vâng, nếu ngoại lệ được gây ra bởi một số lỗi trong việc triển khai JSF, thì nó có khả năng không chỉ hiển thị trên trang lỗi, mà còn trên tất cả các trang khác. – BalusC
Bạn đúng ... nhưng trong trường hợp đó (biểu hiện trên các trang JSF khác), nếu chúng tôi có trang lỗi JSP, nó sẽ hiển thị lỗi chính xác. Nếu không, nếu chúng tôi có trang lỗi Facelets, nó sẽ không hoạt động. Vì vậy, nó không phải là tốt hơn các trang lỗi là JSP? Tôi muốn câu trả lời là KHÔNG, vì vậy mà tôi sẽ không có JSP và Facelets trộn lẫn trong ứng dụng :) Nhưng tôi sợ nó là CÓ. Bạn sử dụng những gì trong ứng dụng của mình, trang lỗi JSP hoặc trang Lỗi Facelet? – choquero70