Câu hỏi này có liên quan chặt chẽ đến this một câu hỏi (đã được trả lời).Gửi chuyển hướng từ bên trong phương thức nghe ajax
Trong suốt dự án, tôi điều hướng giữa các màn hình bằng cách sử dụng các nút lệnh JSF, trong đó thuộc tính action sẽ trỏ đến một hàm trả về một chuỗi. Chuỗi là tên của màn hình mới, ví dụ:
<h:commandButton value="Select" action="#{searchResultsBundledBean.selectFlight}">
</h:commandButton>
selectFlight
sẽ trả về một chuỗi, ví dụ: selected-flight-review
sẽ hướng người dùng đến selected-flight-review.xhtml
Vì mục đích di động, tôi phải thực hiện một cú nhấp chuột panelGrid
bằng cách sử dụng cuộc gọi ajax, ví dụ:
<h:panelGrid>
<f:ajax event="click" listener="#{searchResultsBundledBean.clickFlight(lowFareBundledSearchItem)}"/>
</h:panelGrid
này hoạt động, tôi đã thử nghiệm nó, và kết quả đúng được trả về (Tested với đăng nhập nó ngay trước khi nó được trả lại)
Tuy nhiên, không chuyển hướng diễn ra. Cuộc gọi ajax vẫn chưa thực hiện. Làm cách nào để chuyển hướng đến một màn hình khác? Tôi không phải gửi qua bất kỳ biến nào, tôi chỉ cần màn hình mới được hiển thị. Tôi có nên sử dụng một cái gì đó khác hơn là ajax (tôi không muốn), hoặc là có một số cách để làm cho công việc này theo cách nó bây giờ?
Bạn đã thử sử dụng '? Faces-redirect = true'? Xem http://stackoverflow.com/a/7928396/1199132 –
Yea, đã thử điều đó. Nó trả về chuỗi được sửa đổi (với chuyển hướng được nối thêm), nhưng nó không thực sự làm bất cứ điều gì với nó. Vấn đề tôi đang mắc kẹt ở đây là ajax không liên kết với commandLink hoặc commandButton – Skytiger