JSP + Struts + XML + response.setHeader()

0 respostas
R

Bom dia camaradas

Quem puder me ajudar agradeço. Tenho uma aplicação que gera via Struts/ Actions Class um XML.
por exemplo:

package br.com.accessconsult.struts.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import br.com.accessconsult.jdbc.dao.LivrosDAO;
import br.com.accessconsult.jdbc.modelo.Livros;

public class livrosJSP extends Action {
	@Override
	public ActionForward execute(ActionMapping map, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		String pesq = request.getParameter("pesq");
		//System.out.println(pesq);
		Long isbn = null;
		
		//response.setHeader(arg0, arg1);
		
		if (!pesq.equals(""))
			isbn = Long.parseLong(pesq);
		
		Livros l = new Livros();
		l.setIsbn(isbn);
		
		LivrosDAO dao = new LivrosDAO();
		List <Livros> livros = dao.getLista(l);
		
		String xml = "<livros>\n";
		
		for(int index = 0;index<livros.size();index++){//while (!livros.isEmpty()) {
			Livros livro = livros.get(index);
			xml += "<livro>\n";
			xml += "<isbn>"			+ livro.getIsbn() 			+ "</isbn>\n";
			xml += "<titulo>"		+ livro.getTitulo() 		+ "</titulo>\n";
			xml += "<edicao>"		+ livro.getEdicao_num() 	+ "</edicao>\n";
			xml += "<publicacao>"	+ livro.getAno_publicacao() + "</publicacao>\n";
			xml += "</livro>\n";
		}
		xml += "</livros>\n";
		
		request.setAttribute("xml", xml);		
		return map.findForward("OK");
	}
}

e possuo um arquivo JSp que exibe o XML:

<?xml version="1.0" encoding="iso-8859-1"?>
<%@ page contentType="text/xml"%>
${xml}
porém senhores como faço para setar e passar para frente a função:
response.setHeader()

dentro de minha classe Action?

Pois fiz isso:

package br.com.accessconsult.struts.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import br.com.accessconsult.jdbc.dao.LivrosDAO;
import br.com.accessconsult.jdbc.modelo.Livros;

public class autoresJSP extends Action {
	@Override
	public ActionForward execute(ActionMapping map, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		
		response.setHeader("Cache-Control", "no-cache");//Http 1.1
		response.setHeader("Pragma","no-cache");//Http 1.0		
		response.setDateHeader("Expires", -1);
		
		
		String xml = "";
		request.setAttribute("xml", xml);		
		return map.findForward("OK");
	}
}

como teste, e a JSP destino não identifica os headers enviados.

Camaradas, como faço para o JSP entender os headers enviados pela classe feita no Struts?

Desde já agradeço.

Criado 22 de agosto de 2008
Respostas 0
Participantes 1