目前我的应用程序逻辑正在使用请求参数来执行逻辑。在我的新要求中,我还可以获得一个只有db键(db将具有值)作为请求参数的请求。我可以从数据库中获取数据,但现在的问题是我现有的逻辑/流程不能正常工作,因为它需要参数映射中的数据。
在spring-mvc中我可以再次转发请求并将参数附加到请求
@Controller
public class TestController {
@RequestMapping(value="/test")
public String showTestPage() {
return "forward:/test2?param1=foo¶m2=bar";
}
}
@Controller
public class TestController2 {
@RequestMapping(value="/test2")
public String showTestPage(HttpServletRequest request) {
String param1 = request.getParameter("param1");
String param2 = request.getParameter("param2");
return "testPageView";
}
}
但是在spring-webflow中,我不确定如何复制相同的行为,因为它适用于状态而不是请求映射。任何人都可以告诉我,如果在添加参数后有一种方法可以在spring-webflow中转发。
答案 0 :(得分:1)
<强>更新强>
抱歉,我的问题出错了。
在WebFlow中,您有view-states
转换到下一个状态。如果您想传输参数,可以这样做:
flow.xml:
<view-state id="test" view="test.jsp>
<transition on="toTest2" to="test2" />
</view-state>
<view-state id="test2" view="test2.jsp>
<on-render>
<evaluate expression="test2Delegate.doSomething(requestParameters.param2, requestParameters.param2)"
</on-render>
</view-state>
test.jsp的:
<a href="${flowExecutionUrl}&_eventId=toTest2¶m1=foo¶m2=bar" />
爪哇:
@Component
public class Test2Delegate {
public void doSomething(String param1, String param2) {
//doSomething
}
}
答案 1 :(得分:0)
在flow xml中添加:
<view-state id="viewname" view="flowRedirect:appName?#{flowScope.jobId}
因此,当您转换到此视图状态时,它会将URL重定向回服务器并返回您想要的请求参数。但是这会再次访问网络,然后是服务器,我希望请求仅停留在服务器端