Pessoal… estou tendo problemas para implementar o framework ajax4jsf no JSF ! meu codigo esta da seguinte forma:
<table width="100%" cellpadding="0" cellspacing="5" border="0" >
<tr>
<td width="400" valign="top">
<a4j:region id="regionEmpresa">
<h:dataTable value="#{empresaBean.empresaList}" var="empresa">
<h:column>
<f:facet name="header">
<h:outputText value="#{msg.columnChkSelect}" />
</f:facet>
<h:selectBooleanCheckbox value="#{empresa.marked}" onclick="submit();" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msg.columnEmpresa}"/>
</f:facet>
<h:outputText value="#{empresa.empresa}" />
</h:column>
</h:dataTable>
</a4j:region>
</td>
<td width="350" valign="top">
<a4j:region id="regionContrato">
<h:dataTable value="#{empresaBean.contratoList}" var="contrato">
<h:column>
<f:facet name="header">
<h:outputText value="#{msg.columnChkSelect}"/>
</f:facet>
<h:selectBooleanCheckbox value="#{contrato.marked}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msg.columnContrato}"/>
</f:facet>
<h:outputText value="#{contrato.contrato}" />
</h:column>
</h:dataTable>
</a4j:region>
</td>
</tr>
</table>
O código acima funcionava e toda vez que clico na grid de empresas e grid de contratos é preenchida com os os contratos da empresa, existe alguns problemas mas tudo bem, porem tentei implementar o uso do ajax4jsf para retirar o refresh da pagina mas o código abaixo não funciona
Eu alteri o codigo para:
<h:selectBooleanCheckbox value="#{empresa.marked}">
<a4j:support event="onclick" reRender="regionContrato"/>
</h:selectBooleanCheckbox>
A duvida é como fazer para grid de contratos deve ser carregado com os contratos do cliente sem submeter a pagina, segue abaixo o código do Bean:
public class EmpresaBean {
private static Logger logger = Log.startLogger(EmpresaBean.class);
private EmpresaTO empresaSelected = null;
private ContratoTO contratoSelected = null;
private ListDataModel empresaList = null;
private ListDataModel contratoList = null;
public ListDataModel getEmpresaList(){
logger.info("C arregando lista de empresas");
EmpresaBO empresaBO = new EmpresaBO();
empresaList = new ListDataModel(empresaBO.listEmpresa(new EmpresaTO()));
return empresaList;
}
public ListDataModel getContratoList(){
logger.info("Carregando lista de contratos");
EmpresaBO empresaBO = new EmpresaBO();
List<ContratoTO> listContrato = new LinkedList<ContratoTO>();
List list = (List)empresaList.getWrappedData();
for(int i = 0; i < list.size(); i++){
empresaSelected = (EmpresaTO)list.get(i);
if(empresaSelected.isMarked() == true){
ContratoTO contratoTO = new ContratoTO();
contratoTO.setEmpresaTO(empresaSelected);
listContrato.addAll(empresaBO.listContrato(contratoTO));
}
}
contratoList = new ListDataModel(listContrato);
return contratoList;
}
}
Desde já muito obrigado