Tôi có trang JSF không được bảo vệ bởi j_security_check
. Tôi thực hiện các bước sau:ViewExpiredException không được đưa lên yêu cầu ajax nếu trang JSF được bảo vệ bởi j_security_check
- Mở trang JSF trong trình duyệt.
- Khởi động lại máy chủ.
- Nhấp vào nút lệnh trên trang JSF để bắt đầu cuộc gọi ajax.
Firebug cho thấy rằng ViewExpiredException
được tăng lên, như mong đợi.
bài viết:
javax.faces.ViewState=8887124636062606698:-1513851009188353364
đáp ứng:
<partial-response> <error> <error-name>class javax.faces.application.ViewExpiredException</error-name> <error-message>viewId:/viewer.xhtml - View /viewer.xhtml could not be restored.</error-message> </error> </partial-response>
Tuy nhiên, một khi tôi cấu hình trang để được bảo vệ bởi j_security_check
và thực hiện các bước tương tự nêu trên, kỳ lạ (đối với tôi) ViewExpiredException
không còn được nâng lên nữa. Thay vào đó, phản hồi chỉ là một trạng thái xem mới.
bài viết:
javax.faces.ViewState=-4873187770744721574:8069938124611303615
đáp ứng:
<partial-response> <changes> <update id="javax.faces.ViewState">234065619769382809:-4498953143834600826</update> </changes> </partial-response>
Ai đó có thể giúp tôi con số này ra? Tôi hy vọng nó sẽ tăng một ngoại lệ để tôi có thể xử lý ngoại lệ đó và hiển thị một trang lỗi. Bây giờ nó chỉ đáp ứng với một ViewState mới, trang của tôi đã bị kẹt mà không có bất kỳ phản hồi trực quan nào.
Cảm ơn bạn BalusC. Đã lưu ngày của tôi. –
Bạn được chào đón. – BalusC
Oh một câu hỏi bổ sung, tôi tự hỏi tại sao điều sau xảy ra: Nếu tôi sử dụng context.getExternalContext(). Redirect (loginURL), nó thực sự chuyển hướng tôi đến trang đăng nhập. Nhưng sau khi đăng nhập, một tệp xml, với ViewState là nội dung của nó, được trình duyệt hiển thị. Tệp xml chính xác giống như tệp xml thứ hai tôi đã đăng trong câu hỏi của mình. Nếu tôi sử dụng context.getExternalContext(). Redirect (homepageURL), tất cả đều hoạt động tốt. Nó sẽ đưa tôi trang đăng nhập. Sau khi đăng nhập, trang chủ sẽ được hiển thị. –