似乎我可以执行Controller类在Spring Web-Flow中执行的所有操作,例如决策制定和从页面到页面的切换。据我所知,它是MVC模型中的C。我对此是否正确?
所以我的问题是,使用Spring Web-Flow时仍然包含Controller类有什么优势吗?
答案 0 :(得分:1)
Spring Web Flow使用Spring MVC框架。 DispatcherServlet处理请求。 FlowHandlerMapping用于将请求映射到特定Web流。
Web Flow旨在解决跨越多页导航(页面流或向导)的控制器逻辑所涉及的问题。
Web Flow可以消除专用控制器类在预定义工作流程中遵循页面转换/表单更新路径的需要。如果您不需要这样做,只需使用MVC就可以节省很多配置/复杂性。
答案 1 :(得分:1)
如果您需要访问请求和响应,则适当的设计可能仍包含控制器,同时还具有flow.xml。例如,如果您有此代码:
HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getNativeRequest();
HttpServletResponse response = (HttpServletResponse)context.getExternalContext().getNativeResponse();
将它放在控制器而不是服务中更容易理解。
此外,如果您想注册一个自定义编辑器,让控制器在initBinder()
方法中具有此逻辑可能是有意义的。