从Spring 3 Portlet中的ResourceMapping重定向回Portlet

时间:2013-06-26 14:19:52

标签: spring spring-3 jsr286 spring-portlet-mvc vignette

我正在尝试找到一种通过Spring 3 Portlet提供CSV下载的方法。我有一个方法,它使用@ResourceMapping注释来定义一个处理程序,它以@ModelAttribute的形式获取一些报告参数,构建报告并返回它。我遇到的catch-22正在验证从客户端表单发送的参数。

如果我将处理程序设为@ResourceMapping,我可以设置标题并使用ResourceResponse写出报告,但我似乎无法弄清楚如何将用户重定向回Portlet视图在输入验证失败时出错。但是,如果我将其设为@ActionMapping,我可以根据需要检查BindingResult并将其转发回表单,但ActionResponse不允许我设置内容-Disposition标头也不写出CSV字节,这对于发回报告至关重要。

我在这里完全失去了,因为我甚至不知道我的选择是什么。甚至可以做我想用Portlet做的事情吗?是否还有其他可以解决的例子?

1 个答案:

答案 0 :(得分:0)

我建议您同时使用@ActionMapping@ResourceMapping来满足您的要求。

正如您所说,您可以使用validation处理@ActionResponse错误,我会告诉您如何处理Resource Streaming

如您所知,每个@ActionResponse后跟@RenderResponse,只需返回相同的视图,但此时隐藏iframe的{​​{1}}指向src 1}}。

现在ResourceURL中收到的Request已经是@ResourceMapping。因此,您现在可以投放Validated

我不知道您的CSV有多复杂,如果您在应用程序中使用UI作为jsp。如果管理得当,views可以处理Validation

谢谢