在Spring Web流中访问Flash属性

时间:2014-04-22 10:00:51

标签: spring spring-mvc spring-webflow

我用,

   redirectAttributes.addFlashAttribute("msg","Level complete")

访问重定向的jsp上的消息。

当我重定向到Webflow时,如何使用此重定向属性?

1 个答案:

答案 0 :(得分:0)

当使用flash属性将数据从一个控制器发送到Webflow时,我们必须将重定向的flash属性(从控制器)绑定到Webflow的响应JSP页面。为此,我们可以维护一个后端FormAction类,将值绑定到任何webflow范围。在flow xml中,我们可以在输入视图状态时调用自定义方法。

FormAction类的自定义方法就像

public void setupReferenceData(RequestContext context) throws Exception {
        HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getNativeRequest();
        Map<String, ?> inputFlashMap = RequestContextUtils.getInputFlashMap(request);
        if (inputFlashMap != null) {
            String flash = (String) inputFlashMap.get("flash");
            context.getRequestScope().put("flash1", flash);
        }
    }

此方法调用应包含在视图状态的条目部分中。所以flow xml应该有这些部分。

<view-state id="request" view="hello">
            <on-entry>
                <evaluate expression="requestAction.setupReferenceData" />
            </on-entry>
            <transition on="next" to="helloend"/>
    </view-state>