Relatório + Struts2 = sem ideias

Problema bem prático, tenho um JSP e nem tenho que salvar os dados primeiro e depois emitir um relatório feito com JasperReports. Na action, tenho o seguinte método:

public void report() throws Exception { save(); }

Ele chama o meu método save(), no Jsp tem o seguinte:

<s:submit type="image" label="Imprimir Orçamento" title="Imprimir Orçamento" name="printBudget" src="media/printBig.png" theme="simple" action="budget_report" onclick="return confirm('O orçamento tem de ser salvo antes de ser visualizado, você deseja salvá-lo agora?')"/>

É nesse ai de cima que tenho que chamar a criatura, através do seguinte código funciona

<s:a href="./budgetReport_budgetReport.action?budgetId=%{id.codigo}&budgetIdYear=%{id.ano}"><img src="media/report.gif"></s:a>

mas eu precisava salvar antes, alguém tem alguma ideia?

Não sei se entendi bem o que você quer. Mas acho que é isto.
Para resolver este problema e salvar e emitir o relatorio, faça o seguinte:
no teu metodo save()
Deixe ele retornar uma String no o retorno é o caminho para emitir o seu relatorio.
EX:
public String save(){
save();
return"action caminho relatorio";
}
e no seu struts.xml Você seta o caminho para o relatorio.
Este é um geito o outro é você redirecionar o seu save para um Servlet e nele vc emite o relatorio.