首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Spring请求范围与JSF控制器集成

将Spring请求范围与JSF控制器集成
EN

Stack Overflow用户
提问于 2014-02-13 13:39:20
回答 1查看 911关注 0票数 2

我正在开发一个使用JSF和Spring混合的项目。用户界面端点通过JSF前端控制器(javax.faces.webapp.FacesServlet)访问,而REST服务调用则通过Spring前端控制器(org.springframework.web.servlet.DispatcherServlet).访问。更深的层是Spring管理的(或多或少)。我不喜欢这种安排,但我不能改变它。

问题是Spring的请求作用域bean在处理通过JSF前端控制器传入的请求时没有初始化。是否有现成的解决方案来将Spring的WebApplicationContext与JSF机器集成,以便为每个请求初始化Spring请求范围内的bean,而不管该请求是通过JSF还是servlet完成的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-13 18:58:30

有两种方法可以将JSF与Spring集成在一起,这取决于您希望提供最多控制权的框架:

JSF前端控制器:的一种方法是通过JSF路由所有请求,并让将它们路由到控制器,让JSF通过faces-config管理导航状态。然后,将spring注入JSF托管bean,并通过SpringBeanFacesELResolver使用值表达式从facelets视图中访问spring。

关于工作实例,请看这篇文章。

Spring前端控制器:将spring作为带有dispatcher servlet的前端控制器,并放置spring。这是集成这两个框架的首选和最强大的方法,请参阅文档的本节。

Spring将管理导航状态,faces配置文件大部分是空的。不需要JSF托管bean层,请求由webflow直接处理。

JSF按钮中的操作直接触发webflow转换,spring也可以在值表达式中用于构建视图。使用此解决方案,与Spring的集成更加无缝,因为webflow提供了比JSF导航机制更多的可能性:在转换之间触发bean方法,为了避免双重提交,post重定向get模式。

使用这个方向解决了spring请求作用域bean的初始化问题,另外一个解决方法是向RequestContextListener或RequestContextFilter中添加web.xml (参见3.4.4.1文件部分)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21755908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档