Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

paulopatto

Coleções de objetos (POJO) com DWR

Recommended Posts

Olá boa tarde a todos.]

 

 

Não tenho muiiito conhecimento com DWR e por isso minha dúvida deve ser simples mas nem Google.com nem ninguem até o momento consguiu me responde-la.

 

Eu tenho um método ajax para pesquisa, que no lado JAVA da coisa me retorna um ArrayList da façade com os resultados, mas o método ajax tem de passar essa coleção de objetos para a view e pelo que sei o dwr só trabalha co retornos de java.util.Map.

Não consigo dentro desta estrutura de coleções enxergar uma forma de retornar esse meu java.util.ArrayList para a view (vai admito existir existe mas é muito porco a implementação).

Como por conceito o dwr deveria disponibilizar objetos java para o javascript... pensei se é por que eu não conheço a fundo o framework ou isso não tem como mesmo (a não ser com uma coleção de arrays mas de forma muiiiito porca de POG da vida)?

 

Grato pela atenção a mim dispensada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Enfim segue ai a minha solução né...

 

InvHeaderJDBC.java

package com.paulopatto.dwr;

import com.mysql.jdbc.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

public class InvHeaderJDBC extends _DWR{ // _DWR extende DwrServlet
	private static Connection conexao;
	static{
		try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){e.printStackTrace();}
		try{conexao = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/lab", "dev", "o_cravo_brigou_com_a_rosa...");}
		catch(SQLException e){ e.printStackTrace(); }
		System.out.println("Iniciado com sucesso?");
	}
	/// GUJ::" Rafael Steil "
	/// @see http://www.guj.com.br/posts/list/21957.java
	public Collection get(){
		 Map reply = new HashMap();
		 
		 String sql = "Select * from invheader";
		 try{
			java.sql.PreparedStatement stmt = conexao.prepareStatement(sql);
			ResultSet record = stmt.executeQuery();
			while(record.next()){
				Map reply2 = new HashMap();
				reply2.put("id", record.getInt("id"));
				reply2.put("data", record.getString("invdate"));
				reply2.put("cliente", record.getInt("client_id"));
				reply2.put("preco", record.getDouble("amount"));
				reply2.put("taxa", record.getDouble("tax"));
				reply2.put("total", record.getDouble("total"));
				reply2.put("notas", record.getString("note"));
				reply.put(record.getInt("id") , reply2);
			}
		 }
		 catch(SQLException e){
			e.printStackTrace();
		 }
		 return reply.values();
	}
}

InvHeader.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
	<title></title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
	<script type="text/javascript" src="../ajax/engine.js"></script>
	<script type="text/javascript" src="../ajax/util.js"></script>
	<script type="text/javascript" src="../ajax/interface/InvHeader.js"></script>
	<script>
		function ClassInvHeader(hash){
			var id = hash["id"];
			var data = hash["data"];
			var cliente = hash["cliente"];
			var preco = hash["preco"];
			var taxa = hash["taxa"];
			var total = hash["total"];
			var notas = hash["notas"];

			this.getId = getId;
			this.getData = getData;
			this.getCliente = getCliente;
			this.getPreco = getPreco;
			this.getTaxa = getTaxa;
			this.getTotal = getTotal;
			this.getNotas = getNotas;

			function getId(){return id;}
			function getData(){return data;}
			function getCliente(){return cliente;}
			function getPreco(){return preco;}
			function getTaxa(){return taxa;}
			function getTotal(){return total;}
			function getNotas(){return notas;}

		}
	</script>
  </head>
  <body>
	<script>
		function mostrar(){InvHeader.get(listar);}
		function listar(reply){
			for(var reply2 in reply){
				desmontaHash(reply[reply2]);
			}
		}
		function desmontaHash(hash){
			for(var dado in hash){
				document.write("- "+hash[dado]);
			}
			var obj = new ClassInvHeader(hash);
			var alerta = "id=>"+hash["id"]+"; nota=>"+hash["notas"]+";";
			var alertaOBJ = "id=>"+obj.getId()+"; nota=>"+obj.getNotas()+";";
			window.alert(alerta);
			window.alert("COM OBJETO: "+ alertaOBJ);
			document.write("<br/>" + alertaOBJ + "<<br/>");
			document.write("<br/>")
		}
		mostrar();
	</script>
  </body>
</html>

 

Essa foi uma implementação de teste mas o core dela será usado na aplicação, obrigado a todos, pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.