Exibindo resultados de um xml em uma pagina jsp

17 respostas
S

galera, alguem sabe como faço para exiber esses resultados em uma pagina jsp, pq aqui ele esta aparecendo apenas no Console do eclipse, alquem teria um codigo para me ajudar a fazer so pra exemplo. obrigado,

InputSource input =new InputSource(LeitorXmlTeste.class.getResourceAsStream("produto.xml"));
            
                                     
            try {
            	
                LeitorXML leitor= new LeitorXML();
                parser.parse(input,new JColtraneXMLHandler(leitor));   
                Busca p=leitor.get();   
                System.out.println("nome: "+p.getNome());
                System.out.println("preço: "+p.getPreco());   
                System.out.println("descricao: "+p.getDescricao());
                
                
            } catch (SAXException e) {
            	
                e.printStackTrace();
                
            }

17 Respostas

Pedrosa

Voce precisa exibir os resultados formatados na tela?

Ou simplesmente carregar o xml na página?

S

Beleza Pedrosa…=d

Se voce puder mostrar os dois metodos ficaria feliz, mais se nao voce poderia me mostrar como se faz dando apenas um exemplo.

Pedrosa

Para jogar um conteúdo xml:
http://www.guj.com.br/posts/list/54606.java

Para ler uma url em xml pode usar javascript e exibir na tela:
http://www.sergiopereira.com/articles/prototype140.js.ptBR.html

Pedrosa

Ou simplesmente monte uma Servlet e passe os valores via request

Passando os valores via request

public class SuaServlet extends HttpServlet {
    public void service( HttpServletRequest request, HttpServletResponse response ){
             //seu codigo que obtem o xml
             request.setParameter("nome",p.getNome());  
             request.setParameter("preco",p.getPreco());     
             request.setParameter("descricao",p.getDescricao());
             RequestDispatcher rd = getServletContext().getRequestDispatcher("/pagina.jsp");
             rd.forward( request, response );
     }
}

Obtendo no JSP:

Nome: ${nome} - Preço ${preco} - Descrição ${descricao}
S

o link que voce me mandou foi sobre o Prototype.js voce sabe como colocar ele no eclipse. ? ,

Pedrosa

O prototype é uma biblioteca Javascript, voce precisa adicionar no seu projeto web e fazer a referencia na chamada da página, olhe a ultima resposta que eu passei para não confundir muito as coisas, creio que isso já resolva.

S

que resolve resolve e muito msm, resolve ate problema que nao tinha perguntado a voce obrigado, so que o problema que nao to conseguindo referenciar no projeto web, e nao sei como fazer a chamada no da pagina. =[

Pedrosa

Pelo Eclipse existe uma opção de criar um Dynamic Web Project, um projeto web, o Eclipse vai criar todo a estrutura do projeto:

1 Va em File --> New --> Other --> Web --> Dynamic Web Project
3 Va em File --> New --> Other --> Web --> Servlet
3 Va em File --> New --> Other --> Web --> JSP

Para maiores informações de uma olhada nessa apostila da caelum:

Voce precisa ter algum conhecimento em Servlets se não vai ficar boiando!

Pedrosa

Segue uma aplicação exemplo de como passar valores de uma Servlet e Receber em JSP

S

Grande pedrosa, muito obrigado cara, valeu msm, olha so eu coloquei aquele prototype na minha aplicação web, e referenciei, ela no codigo.

assim

<script src="prototype-1.6.0.3.js"></script>
	

<script>
	
	function busca()
	{
		var empID = $('BuscaResultado');
		var url = 'http://pilotos.aileader.com.br/pietro/select?q=politica&allcats=0&ling=none&wt=standard';
		var pars = 'empID=' + empID + '&ano=';
		
		var myAjax =  Ajax.Request(
			url,
			{
				
				method: 'get', 
				parameters: pars, 
				onComplete: mostraResposta
			});
		
	}
</script>
S

sera que consigo fazer com que ele receba esse xml e mostre na jsp, com o exemplo que voce mandou.

S

como voce falou to boiando em sevlet

S

nao esta reconhecendo o servlet pedi para configurar o build path voce sabe o que e isso.

S

Como eu recebo os valores de uma url que me retorna xml, e exibir numa jsp.

Pedrosa

Build path são as depedencias que sua aplicação precisa no caso os jars, pelo Eclipse clique com o botão direito em cima do projeto --> Build Path --> Configure Build Path --> Add Jars, nesse caso o projeto so preciso servlet-api.jar que fica no diretorio lib do Tomcat, caso trabalhe com outros jars como por exemplo de banco de dados precisa fazer o mesmo procedimento, o ideal é que os jars fiquem na pasta WEB-INF/lib do seu projeto ou estejam no lib do Tomcat se forem usadas em mais de uma aplicação.

Pegando a resposta inteira:

function mostraResposta(originalRequest) {
	result = originalRequest.responseText;
	alert(result);
}

Para obter um node especifico do xml vc precisa usar eval:

function mostraResposta(data) {
                var xml = eval('(' + data.responseText + ')');
                var users = xml.users;
                var html = "";
                //percorre uma lista
                for(i=0;i<users.length;i++) {
                        alert(users[i].name ); 
                }
}

Onde o xml seria mais ou menos assim:

<users>
  <name>aaaaa</name>
  <age>28</age>
   ...
</users>
jgbt

Se é so exibir valores de um arquivo xml, não seria mais simples usar JSTL com a tag xml?
Exemplo de uso:
http://www.roseindia.net/jstl/jstlxmltags.shtml

[]´s

S

na verdade nao e um arquivo xml, e uma url de um servido que retorna um xml.

Criado 16 de dezembro de 2008
Ultima resposta 17 de dez. de 2008
Respostas 17
Participantes 3