Spring JSF 2 View Scope $Proxy115没有属性



我正在使用Spring 3和JSF 2创建一个应用程序。我使用自定义ViewScope实现从https://github.com/michail-nikolaev/primefaces-spring-scopes。我注册了自定义作用域。

问题是,当我试图访问使用视图作用域bean的页面时,我得到以下异常:

INFO - ViewScope - Creating bean {editUser}
INFO - EditUser - EditUser() - class[com.myapp.beans.EditUser@f0ac4], rewId[null]
INFO - ViewScope - registerDestructionCallback for bean editUser
INFO - ViewScope - Session event bound sessionBindingListener
INFO - ViewScope - Bean created {com.myapp.beans.EditUser@f0ac4}
2013-03-18 00:30:30 com.sun.faces.lifecycle.ProcessValidationsPhase execute
WARNING: /editUser.xhtml @10,78 value="#{editUser.rewId}": The class '$Proxy115' does not have the property 'rewId'.
javax.el.PropertyNotFoundException: /editUser.xhtml @10,78 value="#{editUser.rewId}": The class '$Proxy115' does not have the property 'rewId'.

当bean是会话作用域时,一切都很好。

我很感激你的帮助。

看起来您的问题是由生成用于处理@Transactional注释的基于jdk的代理引起的。

JDK代理仅为类实现的接口创建(在您的示例中为Serializable))。因此,您的代理只有来自Serializable接口的方法(根本没有)。

要解决这个问题,你需要切换到另一个代理模式(使用cglib),例如使用:@EnableTransactionManagement(proxyTargetClass = true)。同时,将cglib:cglib-nodep:2.2添加到项目的依赖项中。

这是一个ViewScope问题,它创建了虚拟版本,阅读这里:http://forum.primefaces.org/viewtopic.php?f=3&t=24082

相关内容

  • 没有找到相关文章

最新更新