Dúvida: rich:dataTable[RESOLVIDO]

7 respostas
Marcio_Nogueira

Olá, minha dúvida é: como popular um rich:dataTable?
Alguém poderia ajudar dando um exemplo de como posso fazer isso?

Desde já agradeço a ajuda. :wink:

7 Respostas

luxu
<t:dataTable id="listaProdutos" styleClass="dataTableProdutos"
						 width="100%" value="#{entradaNFBBean.produtos}" var="produto"
						 rowClasses="linhaClara, linhaEscura">
							 <t:column sortable="true" sortPropertyName="codigo">
								 <f:facet name="header">
								 	<h:outputText value="Cod."></h:outputText>
								 </f:facet>
								 	<h:outputText value="#{produto.codigo}"></h:outputText>
							 </t:column>
							 <t:column sortable="true" sortPropertyName="descricao">
							 	<f:facet name="header" >
							 		<h:outputText value="Descrição"></h:outputText>
							 	</f:facet>
							 	<h:outputText value="#{produto.descricao}"></h:outputText>
							 </t:column>
							 <t:column>
								 <f:facet name="header">
								 	<h:outputText value="#"></h:outputText>
								 </f:facet>
								 <h:selectBooleanCheckbox id="produtoSelecionado"
								 value="#{nfBean.produtosSelecionados[produto.codigo]}"></h:selectBooleanCheckbox>	
							 </t:column>
							 <f:facet name="footer">
							 	<h:outputText value="Não há produtos!"
							 	rendered="#{empty entradaNFBBean.produtos}"></h:outputText>
							 </f:facet>
						</t:dataTable>

lembrando que eu usei os componentes do tomahawk(t:) mas creio q o uso como richfaces deve ser o mesmo…

Marcio_Nogueira

Segue abaixo o código de meu bean e a página jsp que contem o :

Bean:
package cadastro;

import java.util.List;

import javax.faces.event.ActionEvent;

import entities.Censitario;

public class CadastroCensitarioBean {
	private String matricula;
	private String nome;
	private String cpf ;
	private List<Censitario> censitarios;
	
	public CadastroCensitarioBean(){}
	
	public void consultar(ActionEvent event){
		
		for(Censitario censitario : censitarios){
			censitario.setMatricula(matricula);
			censitario.setNome(nome);
			censitario.setCpf(cpf);
			censitarios.add(censitario);
		}
	}
	
	public List<Censitario> getCensitarios() {
		return censitarios;
	}

	public void setCensitarios(List<Censitario> censitarios) {
		this.censitarios = censitarios;
	}   
}
página jsp:
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@page import="java.util.ArrayList"%>

<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/msgError.js"></script>

<link type="text/css" href="<%=request.getContextPath()%>/css/displaytag.css" rel="stylesheet" />
<link type="text/css" href="<%=request.getContextPath()%>/css/estilo_screen.css" rel="stylesheet" />
<link type="text/css" href="<%=request.getContextPath()%>/css/sapc.css" rel="stylesheet" />

<style type="text/css">
	select.textBox {
		width: 100px;
	}
</style>

<script type="text/javascript">
	$(document).ready(function() {
		
		$('select.textBox').change(function() {
			$('#formCensitario').submit();
		});

		$('#botaoBuscar').click(function() {
			$('#formCensitario').submit();
		});
	
	});
</script>

<jsp:scriptlet> 
	String lClass = "displaytag"; 
	pageContext.setAttribute("tableclass", lClass);
</jsp:scriptlet>

<%	
String erros_form = (String)request.getAttribute("erros_form"); 
String sel  = request.getParameter("situacao"); if(sel == "" || sel == null || sel != "2") sel ="2"; 
%>
<f:view>
<table border="0" align="center" cellpadding="0" cellspacing="0" class="fundoTabelas">
	<tr>
		<td colspan="2" valign="top">
			<jsp:include page="../menu_principal.jsp" />
		</td>
	</tr>
	<tr>
		<td valign="top" width="5%" valign="top">
			
		</td>
		<td valign="top">
			<table width="100%" border="0" cellpadding="0" cellspacing="0" class="fundoTabelas">
				<tr>
					<td align="center">
						<br />
						<h2>CADASTRO DE CENSIT&Aacute;RIO</h2>
						<br />
					</td>
				</tr>
				<tr>
					<td>
						<% 
							String errors = (String)request.getAttribute("erros");

							if(errors!=null){
							if(errors.indexOf("sucesso") > 0)
							out.print("<span class='msgSuccess'>"+errors+"<br /><br /></span>");
							else 
							out.print("<span class='msgErrors'>"+errors+"<br /><br /></span>");
							}
							
							String acao  = request.getParameter("acao");
							String situacao  = request.getParameter("situacao"); 
							String funcaoPag = (String)request.getAttribute("funcaoPag");
							String uri = request.getContextPath();
							uri = "cadastro.do";
						%>  
						<c:if test="${erros_form != null}">
							<%  out.print("<span class='msgErrors' >"+erros_form+"<br /><br /></span>"); %>
						</c:if>
					</td>
				</tr>  
				<tr valign="top">
					<td height="20" align="right" class="textoFormulario12" valign="top" >
						<h:form>
							<h:inputHidden id="metodo" />
							<h:inputHidden id="acao" />
							<table width="100%" border="0" cellpadding="0" cellspacing="0" class="fundoTabelas">
								<tr>
									<td align="center">
										<c:if test="${metodo=='normal'}">
											<c:if test="${optCadastro<=1}">
												<span class="ItemForm">
													Foram encontrados&nbsp;<c:out value="${numC}"/>&nbsp;censit&aacute;rios.
												</span>
												<br /><br />
											</c:if> 
											<table border="0" cellpadding="0" cellspacing="0" align="center" class="fundoTabelas">
												<tr>
													<td>
														<h:selectOneMenu id="funcaoPag" title="Função" onchange="metodo.value='iniciar&cadastro=p_CadCensitario';" style="textBox">
															<f:selectItem itemValue="0" value="Função"/>
															<f:selectItem itemValue="1" value="ACA"/>
															<f:selectItem itemValue="2" value="ACM/ACS"/>
															<f:selectItem itemValue="3" value="REC"/>
															<f:selectItem itemValue="4" value="ACI"/>
														</h:selectOneMenu>&nbsp;
													</td>
													<td>
														<h:selectOneMenu id="situacao" title="Opções" onchange="metodo.value='iniciar&cadastro=p_CadCensitario';" style="textBox">
															<f:selectItem itemValue="-1" value="Opções"/>
															<f:selectItem itemValue="0" value="A Cadastrar"/>
															<f:selectItem itemValue="1" value="Cadastrados"/>
														</h:selectOneMenu>&nbsp;
													</td>
													<td>
														<h:inputText id="buscar"  size="32" maxlength="50" style="textBox" />&nbsp;
														<h:commandButton id="cmdBuscar" onclick="metodo.value='iniciar&cadastro=p_CadCensitario';" style="TextoBotaoP" value="Buscar"
														actionListener="#{cadastroCesnsitarioBean.consultar}">
															        <a4j:support reRender="tabelaCensitarios"/>
														</h:commandButton>
													</td>
												</tr>
												<tr>
													<td>&nbsp;</td>
													<td>&nbsp;</td>
													<td>
														<span class="dicas">Busque por matr&iacute;cula, nome ou CPF.</span>
													</td>
												</tr>
											</table>
										</c:if>
									</td>
								</tr>
								<tr>
									<td>&nbsp;</td>
								</tr>
								<tr>
									<td align="center">
									<rich:panel>
										<rich:dataTable id="tabelaCensitarios" columns="40" border="1"
										    value="#{cadastroCesnsitarioBean.censitarios}" var="itens">
												<f:facet name="header">
													<rich:columnGroup>
														<rich:column width="150px">
															<h:outputText value="Matrícula"/>
														</rich:column>
														<rich:column width="300px">
															<h:outputText value="Nome"/>
														</rich:column>
														<rich:column width="150px">
															<h:outputText value="CPF"/>
														</rich:column>
													</rich:columnGroup>
												</f:facet>
												<rich:column width="150px">
													<h:commandLink>
													<h:outputText value="#{itens.matricula}"/>
													</h:commandLink>
												</rich:column>
												<rich:column width="300px">
													<h:outputText value="#{itens.nome}"/>
												</rich:column>
												<rich:column width="150px">
													<h:outputText value="#{itens.cpf}"/>
												</rich:column>
										</rich:dataTable>
									</rich:panel>
									</td>
								</tr>
							</table>
						</h:form>
						<br /><br /><br /><br /><br /><br /> <!-- BORDA INFERIOR -->
					</td>
				</tr>
			</table>
		</td>
	</tr>
</table>
</f:view>

O que posso estar fazendo de errado?

R

tá errado aqui:value="#{cadastroCesnsitarioBean.censitarios}

vc escreveu ‘Cesnsitario’

Marcio_Nogueira

Como assim? Você se refere ao nome do bean?
Observe que no value do rich:dataTable passo um List<Censitario> censitarios para popuar a tabela.

R

Marcio_Nogueira:
Como assim? Você se refere ao nome do bean?

Isso.

E

você escreveu ‘cadastroCesnsitarioBean.censitarios’
o correto é ‘cadastroCensitarioBean.censitarios’

linha:146

Marcio_Nogueira

Obrigado a todos pela ajuda.

Criado 10 de março de 2011
Ultima resposta 10 de mar. de 2011
Respostas 7
Participantes 4