3 つの入力フィールドと 2 つのコマンド ボタン (送信とキャンセル) を持つフォームがあります。ユーザーがフォームを送信すると、下のデータ テーブルに 3 つの列で情報が入力されます。挿入された各行の EDIT および DELETE コマンド リンクを含むアクション列もあります。[編集] をクリックすると、そのレコードの情報を上記のフォームに入力する必要があります。フォームが送信された場合は、レコードが既に存在するかどうかを確認します。レコードが存在しない場合は、リストに追加します。
XHTML1 名:
<h:outputLabel>LastName:</h:outputLabel>
<h:inputText id="lastName" value="#{form.lastName}"/>
<h:outputLabel>MiddleName:</h:outputLabel>
<h:inputText id="middleName" value="#{form.middleName}" />
<h:commandButton value="Cancel" action="#{formBacking.cancel}" immediate="true"></h:commandButton>
<h:commandButton value="Submit" action="#{formBacking.submit}"></h:commandButton>
</h:panelGrid>
</h:form>
XHTML2
ユーザーの詳細
<h:column>
<f:facet name="header">FirstName</f:facet>
<h:outputText value="#{userDetails.fname}" />
</h:column>
<h:column>
<f:facet name="header">LastName</f:facet>
<h:outputText value="#{userDetails.lname}" />
</h:column>
<h:column>
<f:facet name="header">MiddleName</f:facet>
<h:outputText value="#{userDetails.mName}" />
</h:column>
<h:column>
<f:facet name="header">Action</f:facet>
<h:commandLink
action="#{formBacking.editUser(userDetails)}"
value="Edit" />
<h:commandLink
action="#{formBacking.deleteUser(userDetails)}"
value="Delete" />
</h:column>
</h:dataTable>
</h:form>
Form.java
@Managed Bean
@ViewScoped
private String firstName = "";
private String lastName = "";
private String middleName = "";
//Setters and getters
UserBacking.java
@ManagedBean
@ViewScoped
private List<Form> userList = new ArrayList<Form>();
\\setters and getters
public void submit(){}
public void cancel(){}
public void editUser(){}
public void deleteUser(){}
What would be the best way to handle the edit functionality?