با استفاده از jsf اینکار خیلی راحت نیست و از AJAX هم نمی توانید استفاده کنید ترجیحا برای سهولت کار از primefaces استفاده کنید . در جی اس اف باید از property bean استفاده کنید و نباید متد را صدا بزنید یعنی getList() به list باید تغییر کند و برای آن getter بگذارید
ولی در jsf
<h:dataTable value="#{categoryDAOImpl.categoryList}" var="o">
<h:column>
<f:facet name="header">دسته</f:facet>
<a href="#{request.contextPath}/categoryList.jsf?categoryId=#{o.id}"> #{o.name}</a>
</h:column>
</h:dataTable>
<h:dataTable value="#{foodDAOImpl.productListByCategory}" var="c">
<h:column>
<f:facet name="header">محصول هر دسته</f:facet>
#{c.name}
</h:column>
</h:dataTable>
public class FoodDAOImpl
{
private List<Category> categoryList;
private List<Product> productListByCategory;
public List<Product> getProductListByCategory()
{
if(productListByCategory == null)
{
getCurrentInstance().getExternalContext().getRequestParameterMap().get("categoryId");
productListByCategory = //query your product base on category query param
}
return productListByCategory;
}
}