Here is a sample example as the second requirement
Select a row and click on "View Details" button, which will show the details in the separate screen.
I assume that
- Your pojo Class name is "YouPojoClass.java"
- Your pojo Class have (member1,member2,code) fields
- Your data set of extendedDataTable will be get from yourFirstController.rowVariableList "List of YouPojoClass"
- Your first page controller name "yourFirstController.java"
- Your second page name is "secondPage.xhtml"
// In your first page screen
<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>
// In your first page controller
public String view(YouPojoClass rowVariable) {
Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
requestMap.put("SELECTED_ITEM_ID", rowVariable.getCode());
return "secondPage";
}
// In your second page controller
public void postConstruct() {
Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
String SELECTED_ITEM_ID = requestMap.get("SELECTED_ITEM_ID");
// .....
}