Problema com DisplayTag (help)

5 respostas
L

Opaa blz galera… estou com um probleminha aqui …

Estou fazendo uma jsp com DisplayTag, a jsp sera soh para visualizar uns dados do banco…

tenho a classe Factory para conexao, e a DAO para realizar a busca… o problema eh o seguinte…

na minha classe DAO eu populo o ArrayList na ordem que eu pretendo mostrar na jsp, mas na hora que eu rodo a jsp a DisplayTag ordena as colunas de uma maneira meio que aleatorio…

Segue abaixo minha jsp e as classes… agradeço desde jah …valeuu

JSP :

<jsp:directive.page contentType="text/html; charset=UTF8" /> 

<jsp:directive.page import="org.displaytag.sample.*" />


<%@ taglib uri="http://displaytag.sf.net" prefix="display" %> 

<%@ page import = "java.util.*,java.sql.SQLException.*, java.util.ArrayList.*, br.com.conexao.BuscaDAO, java.util.List.*,br.com.relatorios.Alarmes" %>

<html>

<link rel="stylesheet" type="text/css" href="css/style.css" />


<% 


BuscaDAO dao = new BuscaDAO();


List <Alarmes> alarmes = dao.getLista();


request.setAttribute( "grid_alarmes", alarmes ); 

%>

<display:table name="grid_alarmes" export="true" sort="external" class="screen.css" />

Classe da BuscaDAO: (eu seto o List jah da maneira como eu queria ordenar as colunas)

public List <Alarmes> getLista() throws SQLException {

		PreparedStatement stmt = this.connection.prepareStatement("SELECT id_alarmes,dt_inicio_alarmes,dt_fim_alarmes,mensagem_alarmes FROM TB_ALARMES ORDER BY ID_ALARMES");
		ResultSet rs = stmt.executeQuery();

		List<Alarmes> list = new ArrayList<Alarmes>();
		
		while (rs.next()) {	
			
			Alarmes alarmes = new Alarmes();
			
			alarmes.setId_alarmes(rs.getLong("id_alarmes"));			
			alarmes.setDt_inicio_alarmes(rs.getString("dt_inicio_alarmes"));
			alarmes.setDt_fim_alarmes(rs.getString("dt_fim_alarmes"));
			alarmes.setMensagem_alarmes(rs.getString("mensagem_alarmes"));
							
			list.add(alarmes);
						
		}
		rs.close();
		stmt.close();
		
		return list;
	}

ai na visualização fica assim
Dt_fim_alarmes - Id_alarmes - Mensagem_alarmes- Dt_inicio_alarmes
ele altera a ordem aleatoriamente …

Valeuu …

5 Respostas

L

Ahh, e tem a classe Alarme, e nao sei por qual motivo na hora de mostrar na jsp ele lista o titulo da coluna de acordo com os nomes das minhas variaveis tbm

segue a classe

public class Alarmes {	
	
	private long Id_alarmes ;
	
	private String Dt_inicio_alarmes ; 
	
	private String Dt_fim_alarmes ; 
	
	private String Mensagem_alarmes;

               //getters and setterss...
}

Alguem ?? :cry:

D

Jovem… a tag <display:table> tem um atributo chamado “defaultsort” que recebe um número inteiro representando a coluna pela qual vc deseja ordenar a lista.

Talvez esse atributo possa te ajudar. Até. =]

L

Entao, o problema na verdade nao esta em como ele ordena, isso eu ateh consegui fazer, mas eh que ele esta alterando a forma de como eu quero que seje mostrado as colunas, por exemplo ele esta mostrando assim

Porém como feito nas classes e no jsp anterior ele deveria ordenar da seguinte maneira as colunas ;

Primeiro o ID_ALARMES, DT_INICIO, DT_FIM e por fim MENSAGEM_ALARMES

alguem sabe pq ele esta ordenando as colunas desta forma ??

Obrigadooo :lol:

sergiolopes

Faz tempo que não uso a displaytag, mas tenta tirar aquele “sort=external”… não me lembro de precisar disso…

L

Sergio, consegui resolver … hehe :lol:

Valeuu …

fiz a seguinte alteração :

<display:table name="grid_alarmes" export="true"  pagesize="20"> 
 <display:column property="ID" title="ID" sortable="true" headerClass="sortable" />
 <display:column property="MENSAGEM" title="MENSAGEM" sortable="true" headerClass="sortable" />
 <display:column property="DATA_INICIO" title="DATA_INICIO"  sortable="true" headerClass="sortable" />
 <display:column property="DATA_FIM"  title="DATA_FIM" sortable="true" headerClass="sortable" />    
</display:table  >
Criado 24 de setembro de 2009
Ultima resposta 1 de out. de 2009
Respostas 5
Participantes 3