你的JSF后备bean(
MainBean和
UserBean)应该由JSF或Spring来管理,但不能同时由两者来管理。
如果你的bean是由JSF管理的:
- 你用@ManagedBean和注释它们
@...Scoped
- 你无需在中声明它们
applicationContext.xml
- 即使你需要注入由Spring管理的bean(也不要忘记使用setter,也需要它),你也可以使用
@ManagedProperty
代替:@Autowired@ManagedProperty
@ManagedProperty("#{userDao}")private UserDao userDao;如果你的bean是由Spring管理的:
- 你在
applicationContext.xml
适当的范围内声明它们(不支持视图范围) - 你不需要
@ManagedBean
和@...Scoped
- 你使用
@Autowired
代替,@ManagedProperty
并且不能以这种方式注入由JSF管理的bean
在这两种情况下,你都需要在以下位置配置Spring-JSF桥
faces-context.xml:
<application> <el-resolver> org.springframework.web.jsf.el.SpringBeanFacesELResolver </el-resolver></application>



