我有一个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?
答案 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}
。