Displaytag: valor padrão para uma coluna

3 respostas
G

Tenho uma tabela feita com displaytag, com tudo ou quase tudo funcionando… quando retorno registros do banco com campo vazios gostaria de setar um valor default tipo: “Campo não cadastrado”. Tentei usar o [color=red]<c:out value="${numero}" default=“Campo não cadastrado”/>[/color] mas não funcionou… alguém poderia me ajudar???

<display:table id="list_tabela" pagesize="5" name="listaFornecedores" defaultsort="1" requestURI="controladora" cellspacing="0">
                  <display:column property="id"     style="width:70px; text-align:center" title="Código"/>
                  <display:column property="nome"   title="Nome" sortable="true" headerClass="sortable"/>
                  <display:column property="email"  title="E-mail" autolink="true" sortable="true" headerClass="sortable"/>
                  <display:column title="Número"><c:out value="${numero}" default="Campo não cadastrado"/></display:column>
                  <display:column property="CNPJ"   title="CNPJ"/>
 </display:table>

3 Respostas

G

Então… eu já consultei a documentação e até imagino que através do Decorator isso seja possível, mas não consegui descobrir como criar uma condicional para verificar se o campo que vem do banco estao null…

P

Sei que essa discussão está antiga mas achei uma solução nos meus estudos aqui. Para setar um valor default ao campo é para usar a condição <c:choose> so que tem que setar um valor para a id da table da displaytag para poder pegar os valores da listagem.

Se vc fosse usar o comando <c:out> acredito que não daria certo pois o campo email vem como vazio e não como null.

<display:table name="listaContatos" id="contatos" pagesize="3" class="dataTable" cellpadding="5" cellspacing="5">
	<display:setProperty name="basic.empty.showtable" value="true"></display:setProperty>
	<display:column property="nome" title="Nome"></display:column>
	<display:column title="Email" autolink="true" >
		<c:choose>
			<c:when test="${not empty contatos.email}">
				${contatos.email}
			</c:when>
		<c:otherwise>
			E-mail não informado
		</c:otherwise>
		</c:choose>
	</display:column>
	<display:column property="endereco" title="Endereço"></display:column>
	<display:column property="datanascimento.time" title="Data de Nascimento" format="{0,date,dd/MM/yyyy}"></display:column>
</display:table>
C

Não lembro agora de uma solução ideal para isso mas rapidamente buscando na Web achei esse link, a idéia seria substituir o campo vazio por espaço vazio = & + n + b + s + p + ;
http://www.mail-archive.com/[email removido]/msg03200.html

Vc já olhou no manual de displaytag?
[]'s

Criado 25 de outubro de 2008
Ultima resposta 25 de out. de 2008
Respostas 3
Participantes 3