私は、ユーザーがテーブル自体の行データを編集できるようにするプライムフェイスの機能を使用しようとしています。それ:primefacesの行編集のevent.getObject()は、古い値をBeanに送信します。
http://www.primefaces.org/showcase/ui/datatableRowEditing.jsf
私が編集、ユーザ入力された新しい値がbean.Itに送信されませんが、まだ古い値を示していると言います。
JSFでの私のコード:
<p:dataTable value="#{mybean.userList}"
var="item"
id="dataTab"
widgetVar="usersTable"
tableStyleClass="data" paginator="true" rows="5"
filteredValue="#{userController.filteredUsers}"
editable="true"
rowKey="#{item}">
<p:ajax event="rowEdit" listener="#{mybean.onEdit}" update=":userForm:growl" />
<p:ajax event="rowEditCancel" listener="#{mybean.onCancel}" update=":userForm:growl" />
<f:facet name="header">
<p:outputPanel>
<h:outputText value="Search all fields:" />
<p:inputText id="globalFilter" onkeyup="('usersTable').filter()" style="width:150px" />
</p:outputPanel>
</f:facet>
<p:column sortBy="#{item.firstName}" filterBy="#{item.firstName}"
filterMatchMode="startsWith">
<p:cellEditor>
<f:facet name="header">
<h:outputText value="First Name" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{item.firstName}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{item.firstName}" style="width:100%"/>
</f:facet>
</p:cellEditor>
</p:column>
<p:column sortBy="#{item.lastName}" filterBy="#{item.lastName}" filterMatchMode="startsWith">
<p:cellEditor>
<f:facet name="header">
<h:outputText value="Last Name" />
</f:facet>
<p:column headerText="Update" style="width:6%">
<p:rowEditor />
</p:column>
</p:dataTable>
Bean内の私のコード:UIのリストを取得するための豆で
public String onEdit(RowEditEvent event) {
User user=(User)event.getObject());
user.getFirstName();
}
コード:
public List<UserBean> getUsersList(){
List<UserBean> retval = new ArrayList<>();
for (Object[] tuple : myFacade.getUserList()) {
UserBean ub = new UserBean();
ub.setFirstName((String) tuple[0]);
ub.setLastName((String)tuple[1]);
ub.setEmailAddress((String)tuple[2]);
ub.setOfficeNumber((String)tuple[3]);
ub.setRole((String)tuple[4]);
retval.add(ub);
}
return retval;
}
私が試してみましたがいくつかのポストで与えられた提案はうまくいきませんでした。誰でも私に新しい値を得る方法を教えてもらえますか?私はgラスフィッシュ4.0、プライムフェイス3.5。
その他の可能性のある問題の中で、コードがJSFタグを適切に閉じることができません。これはコピー&ペーストの問題でしたか? – patstuart
は、変換/検証のように聞こえませんでした。それを確認するためにフォームにメッセージコンポーネントを追加できますか? – kolossus
@patstuartはいこれは単なるコピーの貼り付けエラーで、私のjsfページで問題ありません。 – Valla