Sự cần thiết cho các lớp Hành động có thể được tuần tự hóa là gì? Khi nào và làm thế nào nó xảy ra, nếu có.Tại sao ActionSupport thực hiện Serializable
Trả lời
tôi không biết tại sao nó phải như vậy. nhưng các lớp hành động phải mở rộng ActionSupport. và theo số http://struts.apache.org/2.0.6/struts2-core/apidocs/com/opensymphony/xwork2/ActionSupport.html, ActionSupport triển khai Serializable. Vì vậy, câu trả lời cho câu hỏi khi nào, nó xảy ra mọi lúc: p
Không đúng, các hành động không phải mở rộng ActionSupport. Họ có thể thực hiện giao diện Hành động hoặc chỉ tuân thủ quy ước. –
Tôi nghĩ rằng ông đã yêu cầu nhiều hơn dọc theo dòng "Không khung công tác Struts bao giờ thực sự Serialize ActionSupport", thay vì "Làm thế nào thường làm Struts hành động lớp học thực hiện Serializable". –
Câu hỏi này có thể không liên quan nữa nhưng tôi nghĩ điều này có thể hữu ích.
Từ Sun developer network:
Object serialization là quá trình tiết kiệm nhà nước của một đối tượng để một chuỗi byte, cũng như quá trình xây dựng lại những byte vào một đối tượng sống tại một số thời gian trong tương lai.
Vậy tại sao bạn có thể muốn sắp xếp các đối tượng của mình? Đó là khi bạn cần phải duy trì trạng thái của chúng để bạn có thể sử dụng chúng sau này hoặc trong một JVM khác. JVM có thể nằm trên cùng một máy hoặc qua mạng trên một máy khác. Tôi nghĩ đó là trường hợp tương tự cho lớp học ActionSupport
. Nếu bạn mở rộng ActionSupport
, bạn sẽ có cơ hội để tuần tự hóa hành động của mình và gửi nó qua mạng được sử dụng trong một JVM khác.
Theo như tôi có thể nói, nó không cần phải có thể được Serializable, và nó là một sai lầm để làm cho ActionSupport triển khai giao diện đó.
Dưới đây là lý do tốt nhất mà tôi đã tìm thấy trên các đối tượng (lấy từ here):
Nó rất phổ biến trong các khuôn khổ web sử dụng đối tượng Serializable cho một vài hoặc các lý do, chẳng hạn như việc có thể để bảo tồn nhà nước trên một máy chủ khởi động lại và để vận chuyển các đối tượng xung quanh trong một cụm.
Với điều đó đã nói, (IMHO) Tôi tin rằng đó là lỗi thiết kế để có ActionSupport triển khai Serializable. Tôi không tin rằng một trong hai số ở trên thực sự áp dụng cho đối tượng Hành động vì chúng tồn tại trong thời gian ngắn. Lựa chọn thực hiện các hành động Serializable nên được để lại cho nhà phát triển và không bị "ép buộc" bởi khung công tác.
- 1. Tại sao AtomicInteger thực hiện Serializable
- 2. Tại sao java.util.List không thể thực hiện Serializable?
- 3. Tại sao một Comparator nên thực hiện Serializable?
- 4. Tại sao HttpServlet trong java thực hiện serializable?
- 5. Tại sao HttpServlet triển khai Serializable?
- 6. Tại sao giao diện không [Serializable]?
- 7. Tại sao lớp composite-id phải triển khai Serializable?
- 8. Tại sao không phải My .Net Object Serializable?
- 9. Khi nào và tại sao thực thể JPA nên triển khai giao diện Serializable?
- 10. java.io.NotSerializableException ngay cả khi tôi thực hiện "Serializable"
- 11. Django: "TypeError: [] không phải là JSON serializable" Tại sao?
- 12. Tại sao tôi nên luôn tạo ngoại lệ [serializable]? (NET)
- 13. Tại sao System.Transactions TransactionScope mặc định IsolationLevel Serializable
- 14. Tại sao bảng Scan được thực hiện?
- 15. Tại sao thực hiện onAuthorization trước khi xác thực?
- 16. có sự khác nhau giữa [Serializable] và [Serializable()] trong C#?
- 17. Java serialization, writeObject (Object obj) tại sao không writeObject (Serializable obj)
- 18. Tại sao jQuery thực hiện điều này trong việc thực hiện hàm xây dựng của nó?
- 19. lý do tại sao "thực hiện" trước khi "thực hiện cài đặt"
- 20. Tại sao AsObservable và AsEnumerable được thực hiện khác?
- 21. Tại sao MSBuild không thực hiện nhiều mục tiêu?
- 22. Tại sao thêm biểu tượng @ thực hiện công việc này?
- 23. Tại sao việc thực hiện offsetof() này hoạt động?
- 24. Tại sao lại thực hiện điều này? nếu - __name__ == '__main__'
- 25. Delphi: Tại sao IdHTTP.ConnectTimeout thực hiện yêu cầu chậm hơn?
- 26. Tại sao Microsoft thực hiện ổ cắm khác nhau?
- 27. Tại sao ArrayList thực hiện IList, ICollection, IEnumerable?
- 28. Tại sao Linux memmove() thực hiện theo cách của nó?
- 29. Tại sao std :: find thực hiện theo cách này?
- 30. Tại sao Console.Readline không hoạt động nhưng Console.Readline() thực hiện?
Tôi sẽ quan tâm đến câu trả lời. Có lẽ tốt nhất để yêu cầu các nhà phát triển struts2 trong danh sách gửi thư sử dụng. Dự đoán của tôi là có nhiều loại đầu ra, một số trong đó xử lý hành động dưới dạng lớp xem như được tìm thấy khi sử dụng plugin struts2-json. Nếu bạn nhận được một câu trả lời dứt khoát và đăng nó, tôi sẽ upvote nó, và bạn có thể có được "tự học" huy hiệu. – Quaternion