Tôi đã sau hai POJO đơn giản:Không truy cập đến tài sản lồng trong bean được quản lý trong phạm vi p: cột
class Person {
String name
Address address;
//and of course the getter/setter for the attributes
}
class Address {
String city;
//also getter/setter for this attribute
}
Và một bean ủng hộ:
@ManagedBean
@RequestScoped
class PersonController {
private List persons;
private List<String> columns = Arrays.toList("name", "address.city");
//of course getter/setter
}
Bây giờ tôi muốn tạo một DataTable.
<p:dataTable var="person" value="#{personController.persons}" columnIndexVar="index">
<p:columns var="column" value="#{personController.columns}">
<h:outputText value="#{person[column]}"/>
<p:columms>
</p:dataTable>
Khi tôi thực hiện điều này tôi nhận được một ServletException:
Các Person lớp không có tài sản 'address.city'.
Nhưng nếu một cố gắng để truy cập vào thành phố bất động sản như thế này trong vòng p: cột:
<h:outputText value="#{person.address.city}"/>
Mọi việc đã ổn.
Tại sao tôi không thể truy cập thuộc tính lồng nhau như vậy #{person['address.city']}
? Và làm thế nào tôi có thể truy cập nó trong phạm vi p:columns
?
Thẻ '' không tồn tại. Không phải bạn có quá mức cao hơn cho thẻ '' của PrimeFaces không? –
BalusC
Có. Xin lỗi tôi sẽ thay đổi nó. –