Mapeamento struts.xml

2 respostas
YuriSilva

Olá pessoal.

Estou com um problema que não consigo identificar.

Primeiramente tenho o método de minha action, onde ele tem responsabilidade de tentar gerar um arquivo(xls/txt) para download e caso não consiga cai no catch onde será redirecionado para uma página onde será mostrada a mensagem encapsulada na Exception:

public String exportacao()
	{
		try
		{
			exportacaoVO = service.exportarLista(usuario, pagina);
		}
		catch (Exception e)
		{
			addActionError(ExceptionsUtil.getRootMessage(e));
			log.log(Level.SEVERE,e.getMessage(),e);
			return ERRO_PORTAL;
		}

		return DOWNLOAD;
	}

Abaixo segue o mapeamento do struts.xml onde tenho dois result, o com name “download” que mostrará o arquivo na tela e com name “erroPortal” onde mostrará a página com a mensagem de erro.

<package name="exportacao-download" extends="portlet-default" namespace="/download">
		
			<action name="personalizado" class="br.com.cbmp.portal.view.IndexAction">
			 
			<result name="erroPortal" type="freemarker">/WEB-INF/view/errorPortal.ftl</result>
			
			<result name="download" type="stream">
				<param name="contentType">${exportacaoVO.mimeType}</param>
				<param name="contentDisposition">attachment;filename="${exportacaoVO.nomeDoArquivo}"</param>
			</result>

		</action>

	</package>

Segue abaixo a forma que estou chamando minha action(o método que fará a exportação):

function exportacao()
	{
		document.getElementById('frmLancamentos').action = "/plugin/download/personalizado!exportacao.action";
		document.getElementById('frmLancamentos').submit();
	}

O problema é que não estou conseguindo mostrar o erro ou seja a mensagem que vêm encapsulado na execption, a parte que gera e mostra o arquivo está funcionando perfeitamente, mais caso aconteça algo que não consiga gerar o arquivo, que cai no catch a página sendo mostrada em branco, já fiz o teste e a mensagem está sendo encapsuladaaddActionError(ExceptionsUtil.getRootMessage(e));.

Caso alguém tenha idéia do que pode ser.

Obrigado pela ajuda.

2 Respostas

YuriSilva

Pessoal esqueci de informar que estou usando portlet neste caso acima !!

Valew

YuriSilva

E ae pessoal, alguém arrisca algum palpite.

Desde já agradeço.

Abraço

Criado 28 de julho de 2009
Ultima resposta 29 de jul. de 2009
Respostas 2
Participantes 1