Я пытаюсь реализовать немедленный выбор строки в файле данных PrimeFaces 4, который выдает диалог с деталями из выбранной строки.outputText не вызывает метод being bean
Соответствующие фрагменты кода:
Datatable:
<p:dataTable id="Table"
var="user" rowKey="#{user.id}"
selection="#{userDAO.selectedComplaintRow}"
selectionMode="single" value="#{userDAO.complaintList}"
style="font-size:10px;">
<p:ajax event="rowSelect" listener="#{userDAO.onRowSelect}"
update=":form:Table, :form:messages"
oncomplete="PF('showComplaint').show()" />
...
Диалог:
<p:dialog header="Details" widgetVar="showComplaint"
id="dialog" resizable="false" width="400" showEffect="explode"
modal="true" hideEffect="explode">
<h:panelGrid columns="3" cellpadding="5">
<h:outputText value="Forename: " />
<h:outputText value="#{userDAO.selectedComplaintRow.getForename()}" />
</h:panelGrid>
</p:dialog>
UserDAO.onRowSelect():
public void onRowSelect(SelectEvent event) {
FacesMessage msg = new FacesMessage("User Selected", "Selected!");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
UserDAO Методы получения и установки:
public void setSelectedComplaintRow(User selectedComplaintRow) {
this.selectedComplaintRow = selectedComplaintRow;
System.out.println("Passed forename: " + this.selectedComplaintRow.getForename());
}
public User getSelectedComplaintRow() {
System.out.println("Retrieved forename: " + this.selectedComplaintRow.getForename());
return this.selectedComplaintRow;
}
геттер пользователя и сеттер:
public String getForename() {
return this.forename;
}
public void setForename(String forename) {
this.forename = forename;
}
В то время как (старая школа) System.out.println()
получает Forename успешно от примитива пользователя и выводит его на консоль Eclipse, когда откроется диалоговое окно, то пространство справа от «Forename:» пустое, как если бы NULL был принят с привязкой #{userDAO.selectedComplaintRow.getForename()}
.
Оба типа данных и диалог находятся в пределах одних и тех же тегов.
Что может быть причиной этого?
КСТАТИ бин @ViewScoped – hurleytom
Я также попытался <ч: outputText значение = "# {userDAO.selectedComplaintRow.forename}" /> с теми же результатами. – hurleytom
Вызывается метод setSelectedComplaintRow()? Где находится тег h: form? – scraatz