0

一段时间后,我正在使用 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

任何机构都可以提供帮助吗?

4

2 回答 2

1

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

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

于 2012-10-10T14:22:52.577 回答
0

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

<application>
     <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>
于 2013-05-17T08:33:26.833 回答