我正在使用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
任何人都能提供帮助吗?
答案 0 :(得分:1)
如果要将Spring AOP应用于实现任何接口的类,则应将该类的所有公共方法包含在由其实现的接口中,或者将AOP配置为proxy-target-class = "true"
。
有关此行为的说明,请参阅7.6 Proxying mechanisms。
答案 1 :(得分:0)
如果您的xhtml jsf页面无法访问您的Spring Bean,请检查faces-config.xml中是否有以下配置:
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>