在Spring WebFlow中重定向/转发到子域

时间:2013-10-11 14:08:19

标签: java spring spring-webflow-2

我有一个Java Spring Webflow应用程序,它需要重定向到它自己的子域以进行语言选择。即mysite.com到fr.mysite.com。

我尝试过externalRedirect,但只显示一个空白的html页面。

以下是webflow defenition片段:

<transition on="found" to="redirectOnRetrieve">         
    <evaluate expression="retrieveController.getFoundApplicationRedirect(flowRequestContext)" result="flowScope.redirectUrl"/> 
</transition>

确定我需要重定向到的网址。以下是具有externalRedirect的视图状态:

<view-state id="redirectOnRetrieve" view="externalRedirect:${flowScope.redirectUrl}"/>

是否也可以将请求参数附加到URL?

2 个答案:

答案 0 :(得分:1)

我设法实现了我的目标。执行重定向到Webflow中的子域。所以这就是我设法让它发挥作用的方式。

所以在流程定义中我有:

<transition on="found" to="redirectOnRetrieve">         
    <evaluate expression="retrieveController.brokerApplicationRedirect(flowRequestContext)"/> 
</transition>

现在,我在retrieveController中进行了重定向:

   public void brokerApplicationRedirect(RequestContext context) throws IOException, ServletException {
        String urlString = "http://sub.domain.com?param=myparam";        
        context.getExternalContext().requestExternalRedirect(urlString);
    }

所以我按照我想要的方式构建了Url字符串,然后在控制器中进行了重定向。

答案 1 :(得分:0)

在flow.xml中,正确的EL语法为#{flowScope.redirectUrl}而不是${flowScope.redirectUrl}