繁体   English   中英

没有弹簧流动的弹簧面

[英]spring faces without spring flow

我正在启动一个新的JSF(2)项目。 我意识到纯JSF有一定的局限性,我计划在春季停产。 在春季,JSF是一种相对较新的方法(在stackoverflow中甚至没有标记spring-faces :-)),jsp是经典方法。
我需要对技术堆栈进行最佳调整。
1)我也需要使用弹簧幅流吗?
2)仅使用弹簧面(似乎是流的一部分)+弹簧mvc + JPA是否可行?
3)是否有这种配置的良好示例?

我正在将JSF 2和Spring 3一起用于依赖关系注入等。

我对Web Flow不熟悉,并且不使用它。

在您的faces-config.xml您可以注册Spring SpringBeanFacesELResolver

<el-resolver>
    org.springframework.web.jsf.el.SpringBeanFacesELResolver
</el-resolver>

然后,您可以在JSF代码中访问Spring托管的bean!

看一下Spring 文档API文档

如果您的应用程序中没有特定于向导的繁琐视图,那么我怀疑您是否真的需要使用SWF。

最简单的解决方案实际上是Sebi告诉您的一个解决方案-注册Spring EL Resolver并用适当的@Controller型(最常见的是@Controller )和所需的范围标记您的控制器类。 从那里开始,您应该能够通过手动或自动装配获得对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:

<p:inputText value="#{myController.someViewProperty}" />

我们花了大约2周的时间试图将SWF与JSF 1.2绑定在一起-却发现,一旦我们真正将其与支持JSF 1.2的最新版本的IceFaces一起使用,IceFaces就具有一个令人讨厌的功能/错误。根本不会渲染视图,并且不会抛出任何异常或报告任何有用的内容而陷入了第5阶段(此问题已在1.8.2-GA版本的IceFaces中得到修复,如果不购买许可证就无法获得)。

编辑:我注意到这里基本上有一个类似的SO线程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM