繁体   English   中英

将JSF ManagedBeans更改为Spring Component

[英]Changing JSF ManagedBeans to Spring Component

一段时间后,我与JSF和Spring一起工作,发现我需要在托管bean中使用Spring的AOP,但是例如,当我将它们从以下更改时:

@ManagedBean("title")
@RequestScope
public class Title{
   ...
}

(可以无缝运行)到

@Component
@Scope("request")
public class Title{
   ...
}

尽管spring尝试根据需要创建这些bean(因为它设置了一些Autowired属性),但是找不到从我的.xhtml文件引用的某些属性,例如:

org.apache.myfaces.view.facelets.el.ContextAwarePropertyNotFoundException:   javax.el.PropertyNotFoundException: Property 'selectedUser' not found on type $Proxy50

任何机构都可以帮忙吗?

当您想将Spring AOP应用于实现任何接口的类时,您应该将该类的所有公共方法包括在它实现的接口中,或者使用proxy-target-class = "true"配置AOP。

有关此行为的解释,请参见7.6代理机制

如果您的xhtml jsf页面无法访问您的Spring Bean,请检查是否在faces-config.xml中具有以下配置:

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

暂无
暂无

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

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