【发布时间】:2011-01-23 00:23:36
【问题描述】:
我有一个使用 Spring Framework、Velocity 和(部分)Spring Web Flow 编写的 web 应用程序。
为了在我的所有网页中为我的速度模板提供一组通用引用,我编写了一个 FlowExecutionListener,如下所示:
@Override
public void requestSubmitted(RequestContext context)
{
Map<String, Object> model = new HashMap<String, Object>();
populateModel(model);
context.getRequestScope().putAll(new LocalAttributeMap(model));
}
然后我可以访问存储在模型中的键作为速度参考,例如$reference。
一般来说,这很好用。
但是,流程中的某些退出点将重定向到 GET 请求,如下所示:
<view-state id="startOver" view="redirect:/new"/>
这些重定向将对新请求执行 302,所有请求属性都转换为 URL 参数,从而导致一个大而笨重的 URL,而不是我试图重定向到的干净的 /new url。
我想在侦听器中检测流何时返回重定向,以便我可以跳过将字符串存储在请求属性中。 (我使用带有标准 Spring MVC 的拦截器通过匹配视图名称是否以 "redirect:" 开头来执行此操作)。但我似乎无法在侦听器中找到检测到这一点的方法。
另外,还有其他方法可以防止重定向后将请求属性放在 URL 上吗?
【问题讨论】:
标签: java spring-webflow