2010-12-13 33 views
7

Tôi có một biểu mẫu điền vào một số đối tượng của Bộ sưu tập. Tôi đã có bộ sưu tập được thực hiện với một Danh sách (mọi thứ hoạt động tốt), nhưng bây giờ tôi muốn sử dụng một Bộ. Tôi có một trình chỉnh sửa thuộc tính được đăng ký để tạo các đối tượng. Vấn đề là tôi không biết cú pháp tôi phải sử dụng để điền các đối tượng của Set là gì.Các đối tượng liên kết trong bộ sưu tập Tập hợp

public class MyObject(){ 
    Set<OtherObject> otherObjects = new HashSet(); 
} 

Tôi đã thử với cú pháp trong các thẻ hình thức, như cú pháp một danh sách:

name="otherObjects['${status.index}']" 

và giống như cú pháp cho bản đồ:

name="otherObjects['${id}']" 

nhưng cả hai đến một lỗi vì "Thuộc tính được tham chiếu trong đường dẫn thuộc tính được lập chỉ mục 'otherObjects [0]' không phải là mảng cũng như Danh sách cũng như Bản đồ"

Tôi cũng đã thử với

name="otherObjects" 

nhưng điều này không điền vào các đối tượng. Bất cứ ai có thể cho tôi biết cách liên kết dữ liệu với các đối tượng trong Tập hợp.

Cảm ơn

Trả lời

11

Theo documentation on data binding, bạn chỉ có thể sử dụng ký hiệu khung để liên kết với các đối tượng lồng nhau trong "bộ sưu tập tự nhiên". Tập hợp không đủ điều kiện.

0

Bạn không thể sử dụng cú pháp cũ trong thẻ biểu mẫu và thêm bộ thu thập sẽ trả về một tập hợp các đối tượng?

public class MyObject(){ 
    List<OtherObject> otherObjectsList = new ArrayList<OtherObjects>(); 

    public Set<OtherObject> getOtherObject() 
    { 
    return new HashSet<OtherObject>(otherObjectsList); 
    } 
} 
+1

Tôi nghĩ rằng giải pháp này không phải là rất sạch sẽ, nó chỉ là một cách để tránh ràng buộc với một Set. – Javi

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