【问题标题】:Spring WebFlow: POST from flow to MVC ControllerSpring WebFlow:从流到 MVC 控制器的 POST
【发布时间】:2011-05-24 23:15:37
【问题描述】:

我有如下 MVC 控制器并将 /home 映射到该控制器。要从流重定向到/home,我在view 属性中使用externalRedirect:contextRelative:/home。是否可以在POST 中将一些数据传递给/home ?

MVC 控制器

@Controller
public class MainController {

    @RequestMapping(value="/home", method=RequestMethod.POST)
    public String index(@RequestParam String data) {
        return "index";
    }
}

流程

<end-state id="home" view="externalRedirect:contextRelative:/home" />

【问题讨论】:

    标签: spring-mvc spring-webflow


    【解决方案1】:

    没有。

    当您指定externalRedirect: 时,Spring Webflow 将在您的响应中设置重定向代码和 Location 标头,它只是指示浏览器对指定位置执行 GET 请求。您可以包含附加到此位置的查询参数,但不能包含 POST 数据。

    例如:

    <end-state id="home" view="externalRedirect:contextRelative:/home?foo=bar" />
    

    还请注意,您可以在此字符串中包含 ${expressions},根据 XSD,该字符串将根据请求上下文进行评估。

    【讨论】:

    • 谢谢。您知道如何将查询参数从流传递到 mvc 控制器吗?
    • @marioosh 您可以使用会话或持久存储 (DB)。但我认为您可能想要退后一步并评估您实际在做什么——webflow 允许您拥有存在于请求之间的数据,从而为您提供有状态的对话。如果您需要将其中一些数据传递给另一个控制器,那么听起来您可能只是需要将另一个步骤合并到您的流程中(而不是另一个控制器)。
    • 所以没有办法使用 post 方法(为了从 url 中隐藏请求参数)??
    猜你喜欢
    • 2011-10-19
    • 1970-01-01
    • 2016-11-17
    • 2023-03-29
    • 1970-01-01
    • 2018-11-11
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多