如何将参数传递给spring webflow?

时间:2010-09-21 08:51:22

标签: spring-webflow

首先,我不知道如何配置spring webflow的restful url请求, 例如,如何在键入地址时调用我的Webflow: http://localhost/app/order/edit/1002

编写spring mvc控制器来处理这个很容易,但是在webflow的情况下,我不知道如何传递参数。

任何人都可以帮助我吗? 感谢

2 个答案:

答案 0 :(得分:3)

尝试阅读以下请求参数。 它会处理“http://example.com/message?messageId=3”,但在呈现视图时,网址会更改为“http://example.com/message?execution=e1s1”。

流程代码:

<?xml version="1.0" encoding="UTF-8"?>
    <flow xmlns="http://www.springframework.org/schema/webflow"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/webflow
        http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">

    <on-start>
        <evaluate expression="FooWebFlowController.create(flowRequestContext)"
                  result="flowScope.fooModel"/>
    </on-start>

    <view-state id="view" model="fooModel" view="fooView">
    </view-state>
</flow>

FooWebFlowController bean:

import org.springframework.webflow.execution.RequestContext;

@Component
public class FooWebFlowController {

    @Autowired
    private FooDAO fooDAO;

    public Foo create(RequestContext requestContext) {
        String messageId = requestContext.getRequestParameters().get("messageId")
        Foo foo = fooDAO.findByMessagId(messageId);
        return foo;
    }
}

答案 1 :(得分:0)

RequestPathFlowExecutorArgumentHandler您要找的是什么?

  

流执行器参数处理程序   从请求中提取参数   路径并在URL路径中公开它们。

     

这允许REST样式的URL   以一般格式发布流程:   HTTP:// $ {HOST} / $ {背景   path} / $ {dispatcher path} / $ {flowId}

<bean id="flowController" class="org.springframework.webflow.executor.mvc.FlowController">
    <property name="flowExecutor" ref="flowExecutor" />
    <property name="argumentHandler">
        <bean class="org.springframework.webflow.executor.support.RequestPathFlowExecutorArgumentHandler" />
    </property>
</bean>