Tôi đang di chuyển một ứng dụng struts sang Struts 2. Nó được phát triển bởi Struts 1.2 bốn năm trước đây.jsp: thẻ chuyển tiếp chuyển tiếp đến hành động Struts 2
Câu hỏi của tôi là:
Trong JSP của tôi, có một tuyên bố như vậy:
<jsp:forward page="/a.do" />
Nó hoạt động tốt trong Struts 1, nhưng không hoạt động trong Struts 2, nó cho tôi biết Lỗi HTTP 404 khi tôi đang truy cập tệp JSP này.
Tuy nhiên, nếu tôi truy cập vào http://localhost:8080/shell/a.do
, nó hoạt động tốt.
Tôi tự hỏi lý do, có phải vì hành động chuyển tiếp không thể bị bộ lọc Struts 2 bắt gặp không? (org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
)
Vì vậy, chuyển tiếp không thể được gửi đến hành động Struts 2?
Có nhiều tiền tố trong ứng dụng của tôi, nếu tiền đạo không thể hoạt động trong Struts 2, nó có phải là giải pháp duy nhất để sử dụng chuyển hướng thay vì chuyển tiếp không?
Thực ra câu hỏi này dựa trên phân tích của tôi, công việc ban đầu là hiển thị trang chào mừng của trang web. Nếu tôi sử dụng jsp:forward
chuyển tiếp đến a.do, nó không hoạt động. Và tôi đã làm theo lời khuyên của Roman, sử dụng result
thay vì chuyển tiếp. Vì vậy, câu hỏi bây giờ là làm thế nào để cấu hình hành động mặc định cho toàn bộ ứng dụng?
Tôi đã thử <default-action-ref name="a"/>
, nhưng nó chỉ hoạt động cho các tác vụ chưa được ánh xạ, ví dụ: http://localhost:8080/shell2/(some-unmapped-action).do
, hành động mặc định. Nhưng nó không hoạt động nếu tôi không chỉ định ".do"
.
Tất nhiên điều này có thể được thực hiện bằng cách ghi đè url, nhưng tôi không muốn sử dụng phương pháp này.
Xin chào tất cả, tôi nghĩ câu hỏi này có thể được đóng lại, vì chỉ khi Tôi đã thêm ' REQUEST INCLUDE FORWARD ' trong web.xml của tôi cho bộ lọc struts2, sự cố này có thể được khắc phục. FYI. –