Pessoal, estou encontrando uma enorme dificuldade para fazer uma coisa simple que faria em 2 minutos utilizando um projeto com VRaptor por exemplo.
Faço uma consulta no banco e retorno a lista dos objetos encontrados pra minha tela e mostro em um rich:dataTable. Até aqui tranquilo.
O problema é que quero criar uma coluna que irá conter um checkbox para cada registro, e ao clicar em um botão, receber no meu método o campo “ID” dos registros selecionados. Não consigo fazer isso de jeito nenhum. Segue o trecho do jsp…
<h:form id="form_conteudo_pesquisa">
<!-- Panel onde irá listar a table com os dados retornados pela pesquisa -->
<rich:panel id="conteudo_pesquisa" style="display:#{not empty osBean.servicos ? 'block' : 'none'}">
<h:commandButton value="Gerar Relatório" actionListener="#{osBean.geraRelatorio}"/>
<rich:dataTable value="#{osBean.servicos}" var="item" id="servicos" onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'" sortMode="single" stateVar="#{item}">
<rich:column>
<f:facet name="header">
<h:panelGroup layout="block">
<h:selectBooleanCheckbox id="checkAll" onclick="checkAllCheckboxesInTable( this.id, this.checked );">
<a4j:support event="onchange" reRender="IdList"/>
</h:selectBooleanCheckbox>
<h:outputText value="Imprimir"/>
</h:panelGroup>
</f:facet>
<h:selectBooleanCheckbox id="select" value="#{item.select}"></h:selectBooleanCheckbox>
</rich:column>
<rich:column sortBy="#{item.id}">
<f:facet name="header"><h:outputText value="Nº OS"/></f:facet>
<a4j:commandLink reRender="panel_os" ajaxSingle="true" value="#{item.id}" actionListener="#{osBean.visualizaOS}" oncomplete="Richfaces.showModalPanel('panel_os')" >
<f:param value="#{item.id}" name="codOS" />
</a4j:commandLink>
</rich:column>
<rich:column>
<f:facet name="header"><h:outputText value="Data"/></f:facet>
<h:outputText value="#{item.data}"><f:convertDateTime pattern="dd/MM/yyyy"/></h:outputText>
</rich:column>
<rich:column>
<f:facet name="header"><h:outputText value="Solicitante"/></f:facet>
<h:outputText value="#{item.solicitante}"/>
</rich:column>
<rich:column>
<f:facet name="header"><h:outputText value="Descrição"/></f:facet>
<h:outputText value="#{item.descricao}"/>
</rich:column>
<rich:column>
<f:facet name="header"><h:outputText value="Tipo"/></f:facet>
<h:outputText value="#{item.tipoServico.descricao}"/>
</rich:column>
<rich:column>
<f:facet name="header"><h:outputText value="Contrato"/></f:facet>
<h:outputText value="#{item.contrato.id}"/>
</rich:column>
<rich:column>
<f:facet name="header"><h:outputLabel value="Nota Fiscal"/></f:facet>
<h:outputText value="#{empty item.numNota ? 'não emitida' : item.numNota}"/>
</rich:column>
<rich:column>
<f:facet name="header"><h:outputText value="Valor"/></f:facet>
<h:outputText value="#{empty item.numNota ? '-' : item.valorServico+item.valorMaterial}"><f:convertNumber pattern="#0.00"/></h:outputText>
<f:facet name="footer">
<h:outputText value="#{osBean.totalValor}"><f:convertNumber pattern="#0.00" /></h:outputText>
</f:facet>
</rich:column>
<rich:column>
<f:facet name="header"><h:outputText value="Total horas"/></f:facet>
<h:outputText value="#{item.tempoTotalCobranca}"><f:convertNumber pattern="#0.00"/></h:outputText>
<f:facet name="footer">
<h:outputText value="#{osBean.totalHoras}"><f:convertNumber pattern="#0.00" /></h:outputText>
</f:facet>
</rich:column>
</rich:dataTable>
</rich:panel>
</h:form>
Se algúem conseguir me ajudar eu agradeço, pois empaquei aqui…