Nat*_*ell 4 java spring spring-mvc spring-webflow-2
从表面上看,有点奇怪的问题!但我正在创建一个使用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) {
Run Code Online (Sandbox Code Playgroud)
我从一些webflow动作类中了解到,我可以从RequestContext对象获取当前状态:
public Event checkDeclines(RequestContext p_ctx) throws Exception {
// get the current state
StateDefinition state = p_ctx.getCurrentState();
Run Code Online (Sandbox Code Playgroud)
我从来没有真正理解Spring所做的'voodoo':)只需在方法签名上指定它们就可以自动注入参数(当然它只能注入它知道的东西??).我试过简单地改变我的控制器方法的方法签名来注入RequestContext(徒劳地希望它会被注入),但事实并非如此.它抱怨RequestContext是一个接口.
所以,有没有人知道如何让我的控制器知道当前的webflow状态 - 通过注入控制器方法签名中的东西,或者我可以从某种方式从http请求中获取它(或者我可以从请求获得的会话) ).
任何帮助都非常感谢.
在您的Webflow视图中,您应该可以访问${flowRequestContext}可在ajax调用中使用的变量.
您可以从中获取所需的信息${flowRequestContext.currentState}并将其添加为参数.
您不能直接注入requestContext,因为您不在Webflow环境中.如果你是,你可以直接使用RequestContext.getRequestContext().尝试从你的MVC控制器调用它,你将得到null.在流程中尝试,你会得到它.
| 归档时间: |
|
| 查看次数: |
4742 次 |
| 最近记录: |