У меня есть список пользователей, которых я хочу отображать на странице JSF с использованием начертания p:datatable. У меня нет исключения, но я не могу отобразить данные, которые есть в списке, даже заголовки столбцов не отображаются, на самом деле я использую 'getUserListe()'method, чтобы получить данные из базы данных, вызывающей мой уровень обслуживания, чтобы быть уверенным из этого я добавил sysprint () некоторых userDomain свойств (мой класс модели), когда я обращаюсь к URL-адресу, я хочу заполнить свой datatable данными из UserListe, поэтому я вызываю его value="#{userMB.userListe}", проблема в том, что список не отображается. но когда страница заряжена, это означает, что вызывается getUserListe (), в моей консоли свойства печатаются успешно, кто-то имеет представление об этом ?? :
часть моего управляемого bean-компонента:
@ManagedBean(name="userMB")
@RequestScoped
public class UserManagedBean implements Serializable {
private List<UserDomain> userListe ;
public List<UserDomain> getUserListe() {
this.userListe = new ArrayList<UserDomain>();
this.userListe.addAll(getUserServicee().getAll());
for(UserDomain u : userListe)
System.out.println(u.getFirstName());
return userListe;
}
public void setUserListe(List<UserDomain> userListe) {
this.userListe = userListe;
}
часть моего файла jsf.xhtml:
<h:form>
<h:outputText value="USER's rights list: "></h:outputText>
<p:dataTable id="userss" var="userr" value="#{userMB.userListe}" style="width: 10%">
<h:column>
<f:facet name="header"><h:outputText value="FirstName" /></f:facet>
<h:outputText value="#{userr.firstName}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="LastName" /></f:facet>
<h:outputText value="#{userr.lastName}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="Action" /></f:facet>
<h:commandLink value="Edit" action="#{userMB.editAction(userr)}" />
</h:column>
</p:dataTable>
<h:commandButton value="OK" action="#{userMB.userProp}" />
</h:form>
Обратите внимание, что у моего пользователя все геттеры и сеттеры его свойств настроены правильно, спасибо за помощь.
<h:column>работает с<h:dataTable>, измените его на<p:column>. Сделайте свой bean-компонент @ViewScoped и переместите бизнес-логику вашегоgetUserListeв другой метод, для этого прочтите Между страницей jsf и управляемым bean-компонентом, почему метод получения вызывается дважды - person Luiggi Mendoza   schedule 01.08.2012