Tôi có một câu hỏi cơ bản trong struts tại sao chúng ta cần phải có <global-forwards>
và <global-exceptions>
trong struts-config.xml. Nếu chúng ta có thể đạt được những điều tương tự với số <action-mappings>
.Tại sao chúng ta cần các ngoại lệ toàn cầu và ngoại lệ trong thanh chống?
Trả lời
<global-forwards>
Cân nhắc bạn xác nhận mật khẩu tên người dùng cho các url khác nhau như update.do, insert.do delete.do vv Nếu đó là một người dùng hợp lệ bạn cần phải tiến hành các neccesary action.if không mong muốn được đăng nhập page.See ánh xạ dưới đây
<action-mappings>
<action path="/insert" type="controller.Insert">
<forward name="success" path="/insert.jsp"/>
<forward name="failure" path="/login.jsp"/>
</action>
<action path="/update" type="controller.Update">
<forward name="success" path="/update.jsp"/>
<forward name="failure" path="/login.jsp"/>
</action>
<action path="/delete" type="controller.Delete">
<forward name="success" path="/delete.jsp"/>
<forward name="failure" path="/login.jsp"/>
</action>
</action-mappings>
Thay vì lặp lại những <forward name="failure" path="/login.jsp"/>
bạn có thể tuyên bố này trong <global-forwards>
như dưới đây
<global-forwards>
<forward name="failure" path="/login.jsp"/>
</global-forwards>
Bây giờ bạn có thể Remo đã đặt <forward name="failure" path="/login.jsp"/>
trong ánh xạ hành động.
<global-exceptions>
Nếu bạn nhận được java.Io ngoại lệ thay vì xử lý thủ công cho mỗi bạn có thể khai báo trên toàn cầu như dưới đây.
<global-exceptions>
<exception type="java.io.IOException" path="/pages/error.jsp"/>
</global-exceptions>
Tôi hy vọng điều này sẽ làm rõ vấn đề của bạn.
Nếu bạn đang nói về Struts 1, global-exceptions
là ExceptionHandlers
giao dịch với một số Exception
cho tất cả các hành động, vì vậy bạn không phải khai báo mỗi hành động và tránh trùng lặp.
Global-forwards
có cùng ý tưởng. Nếu bạn có tiền đạo với cùng một đường dẫn trong các hành động khác nhau, bạn có thể tránh trùng lặp bằng cách tuyên bố chỉ một global-forward
và tất cả các hành động có thể sử dụng nó. Với global-forwards
, bạn cũng có thể tránh các URL được mã hóa cứng trong jsps của mình, ví dụ: bạn có thể khai báo toàn cục về phía trước như <forward name="loginLink" path="/login" />
và sau đó trong jsp <html:link forward="loginLink">Login</html:link>
.
- 1. Tại sao tạo ngoại lệ tùy chỉnh?
- 2. Ngoại lệ Java và Ngoại lệ C++
- 3. C++ an toàn ngoại lệ
- 4. Ngoại lệ trong các trường hợp ngoại lệ trong C++
- 5. Xử lý ngoại lệ toàn cầu trong Java
- 6. Ngoại lệ tràn ngăn xếp — tại sao?
- 7. An toàn ngoại lệ trong Qt
- 8. Trình xử lý ngoại lệ javascript toàn cầu (trong Chrome)
- 9. tại sao ngoại lệ này FileItemStream $ ItemSkippedException?
- 10. Thông báo ngoại lệ nên được toàn cầu hóa
- 11. EXTJS 4 - Trình nghe ngoại lệ toàn cầu
- 12. Tại sao ngoại lệ thời gian chạy là ngoại lệ không được kiểm soát?
- 13. Tại sao ngoại lệ win32 không bị bắt bởi cơ chế xử lý ngoại lệ C#
- 14. Chúng ta có nên bắt một ngoại lệ, quấn nó và truyền nó lên không?
- 15. Tại sao MethodInfo.Invoke bọc ngoại lệ trong một TargetInvocationException?
- 16. Các lớp ngoại lệ Java
- 17. Tại sao InterruptedException là ngoại lệ được kiểm tra?
- 18. Xử lý ngoại lệ toàn cầu để điều khiển winforms
- 19. Có thể có móc ngoại lệ toàn cầu không?
- 20. Xử lý ngoại lệ toàn cầu của WinForms?
- 21. Sử dụng Xử lý ngoại lệ toàn cầu trên android
- 22. ruby - tăng ngoại lệ với ngoại lệ
- 23. Tại sao no_data_found ORA-01403 là ngoại lệ trong Oracle?
- 24. Enable Xử lý ngoại lệ an toàn trong C++ Builder
- 25. Khi nào cần đăng nhập ngoại lệ?
- 26. Ngoại lệ Nullpointer tại com.sun.faces.config.InitFacesContext.cleanupInitMaps
- 27. Tại sao không thể bắt ngoại lệ bên trong?
- 28. Response.Redirect ngoại lệ
- 29. Ngoại lệ trong WindowProc
- 30. Ném ngoại lệ trong bộ xử lý ngoại lệ
Cảm ơn lời giải thích của người đàn ông rất tốt nhưng thấy nó rất dài. – user1900662
cảm ơn lời giải thích, – Apache
cảm ơn vì đã giải thích, giả sử nếu có trang lỗi HTTP 500 và cần chuyển tiếp lại trang đăng nhập, action-mappings>, làm thế nào điều này có thể được thực hiện, nhờ –
Apache