java – 我可以在Spring MVC控制器中获取当前的webflow状态吗?
作者:互联网
从表面上看,有点奇怪的问题!但我正在创建一个使用webflow和传统Spring MVC控制器的Web应用程序.
从其中一个Webflow视图中,http请求(ajax)从客户端发送到spring控制器.当它最初被编码时,它与webflow没有很多逻辑连接,但现在事情已经开始,控制器可以真正知道请求来自哪个屏幕(视图状态).
我的控制器方法签名如下所示:
@RequestMapping(value="/AjaxStuff", method=RequestMethod.POST)
public String ajaxStuff(@ModelAttribute("quote") QB2MotorQuote p_quote, BindingResult p_bindingResult,
HttpServletRequest p_req, Model p_model, DefaultMessageContext p_messages) {
我从一些webflow动作类中了解到,我可以从RequestContext对象获取当前状态:
public Event checkDeclines(RequestContext p_ctx) throws Exception {
// get the current state
StateDefinition state = p_ctx.getCurrentState();
我从来没有真正理解过Spring所做的’voodoo’:)它可以通过在方法签名上指定它们来自动注入参数(当然它只能注入它知道的东西??).我试过简单地改变我的控制器方法的方法签名来注入RequestContext(徒劳地希望它会被注入),但事实并非如此.它抱怨RequestContext是一个接口.
所以,有没有人知道如何让我的控制器知道当前的webflow状态 – 通过注入控制器方法签名中的东西,或者我可以从某种方式从http请求中获取它(或者我可以从请求获得的会话) ).
任何帮助都非常感谢.
解决方法:
在您的Webflow视图中,您应该可以访问可在ajax调用中使用的变量${flowRequestContext}.
您可以从中获取所需的信息${flowRequestContext.currentState}并将其添加为参数.
您不能直接注入requestContext,因为您不在Webflow环境中.如果是,您可以直接使用RequestContext.getRequestContext().尝试从你的MVC控制器调用它,你将得到null.在流程中尝试,你会得到它.
标签:java,spring-mvc,spring,spring-webflow-2 来源: https://codeday.me/bug/20190529/1181930.html