2 番目の要件としてのサンプル例を次に示し
ます。行を選択し、[詳細を表示] ボタンをクリックすると、別の画面に詳細が表示されます。
私はそれを仮定します
- pojoクラス名は「YouPojoClass.java」です。
- pojoクラスには(member1,member2,code) フィールドがあります
- extendedDataTable のデータ セットは、yourFirstController.rowVariableList "List of YouPojoClass"から取得されます。
- 最初のページ コントローラー名 " yourFirstController.java "
- 2 番目のページ名は「secondPage.xhtml」です。
// 最初のページ画面で
<rich:extendedDataTable id="rowVariablepliersTable"
value="#{yourFirstController.dataModel}" var="rowVariable">
<rich:column width="300px">
<f:facet name="header">
<h:outputText value="member1" />
</f:facet>
<h:outputText value="#{rowVariable.member1}" />
</rich:column>
<rich:column width="300px">
<f:facet name="header">
<h:outputText value="member2" />
</f:facet>
<h:outputText value="#{rowVariable.member2}" />
</rich:column>
<rich:column width="90px">
<f:facet name="header">
<h:outputText value="view" />
</f:facet>
<h:commandButton
title="view"
value="view"
action="#{yourFirstController.edit(rowVariable)}"/>
</h:commandButton>
</rich:column>
</rich:extendedDataTable>
// 最初のページ コントローラーで
public String view(YouPojoClass rowVariable) {
Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
requestMap.put("SELECTED_ITEM_ID", rowVariable.getCode());
return "secondPage";
}
// 2 番目のページ コントローラーで
public void postConstruct() {
Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
String SELECTED_ITEM_ID = requestMap.get("SELECTED_ITEM_ID");
// .....
}