If you are not yet using JSF 2.0, you can use h:outputLinkin conjunction with <f:param>, #{param}and faces-config.xml.
An example of a base table:
<h:dataTable value="#{bean.employees}" var="employee">
<h:column>
<h:outputLink value="employees.jsf">
<f:param name="id" value="#{employee.id}" />
<h:outputText value="View employee #{employee.name}" />
</h:outputLink>
</h:column>
</h:dataTable>
Basic example faces-config.xml:
<managed-bean>
<managed-bean-name>employeeManager</managed-bean-name>
<managed-bean-class>com.example.EmployeeManager</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>id</property-name>
<value>#{param.id}</value>
</managed-property>
</managed-bean>
Basic example com.example.EmployeeManager:
public class EmployeeManager {
private Long id;
private Employee employee;
@PostConstruct
public void init() {
this.employee = employeeDAO.find(this.id);
}
}
@PostConstuct bean . . .