2011-01-25 39 views
9

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

+1

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

Trả lời

-2

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

+2

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. –

+1

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". –

0

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.

9

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.

Các vấn đề liên quan