弹簧面没有弹簧流动
我正在开始一个新的JSF(2)项目。 我意识到纯粹的JSF有一些限制,我打算在spring放弃。 JSF在spring是一种相对较新的方法(在stackoverflow中甚至没有标签spring-faces :-)),jsp是经典的方式。
我需要对技术堆栈进行最佳调整。
1)我是否也需要使用弹簧网流量?
2)是否可以使用弹簧面(这似乎是网络流量的一部分)+ spring mvc + JPA?
3)这样的配置有什么好的例子吗?
我正在使用JSF 2和Spring 3进行dependency injection等。
我不熟悉Web Flow而且我不使用它。
在faces-config.xml
您可以注册Spring SpringBeanFacesELResolver
。
org.springframework.web.jsf.el.SpringBeanFacesELResolver
然后,您可以在JSF代码中访问Spring托管bean!
看一下Spring 文档和API文档 。
如果您的应用程序中没有特定于向导的特定视图,我怀疑您实际上是否需要使用SWF。
最简单的解决方案实际上就是Sebi告诉你的那个 – 注册Spring EL Resolver并用适当的@Controller
型(最常见的是@Controller
)和所需的范围标记你的控制器类。 从那以后,您应该能够通过手动或自动assembly获得对Spring管理的bean的引用。 这就是它的全部 – 没有faces-config.xml
bean管理,也没有“双IoC”开销。 一旦它在Spring上下文中,管理控制器就可以通过#{}
EL符号从facelet轻松解除引用。
例如:
TestController.java:
@Controller("myController") @Scope("request") public class TestController { @Autowired private SomeSpringManagedBean someBean; private String someViewProperty; public String getSomeViewProperty() { return someViewProperty; } public void setSomeViewProperty(String arg) { this.someViewProperty = arg; } ...... }
TestView.jspx:
我们已经失去了大约两周的时间尝试将SWF与JSF 1.2结合在一起 – 只是发现一旦我们真正使用支持JSF 1.2的最新版本的IceFaces,IceFaces就有一个如此令人讨厌的function/ bug根本不会渲染视图并且在第5阶段陷入困境而没有抛出任何exception或报告任何有用的东西(该问题在未购买许可证时无法获得的1.8.2-GA版本的IceFaces中得到修复)。
编辑:我注意到这里基本上是一个类似的SO线程。