我正在使用Spring托管的JSF bean,现在我必须使用注释标签Ex。@ scope of spring或JSF?
我注意到@ViewScoped是JSF注释无法正常工作并仍然表现为请求范围?
答案 0 :(得分:1)
如果您使用org.springframework.web.jsf.el.SpringBeanFacesELResolver
进行Spring + JSF集成,则需要使用org.springframework.context.annotation.Scope
注释标记范围。
答案 1 :(得分:0)
答案 2 :(得分:0)
阅读本文:本文中的信息:http://www.beyondjava.net/blog/integrate-jsf-2-spring-3-nicely/
我这样做了:
为JSF支持bean定义一个抽象超类,如下所示:
public abstract class AutowireableManagedBean {
protected Logger logger = LoggerFactory.getLogger(getClass());
protected AutowireCapableBeanFactory ctx;
@PostConstruct
protected void init() {
logger.debug("init");
ctx = WebApplicationContextUtils
.getWebApplicationContext(
(ServletContext) FacesContext.getCurrentInstance()
.getExternalContext().getContext())
.getAutowireCapableBeanFactory();
// The following line does the magic
ctx.autowireBean(this);
}
...
}
然后,让你的支持bean扩展该超类,你将能够自动装配Spring bean并使用特定于JSF的视图范围:
@ManagedBean
@ViewScoped
public class MyBackingBean extends AutowireableManagedBean {
@Autowired
private MyDao myDao;