Dee*_*Tee 5 scope view serializable jsf-2
我正在尝试将会话作用域的JSF托管bean转换为查看作用域.但是,当我尝试访问此bean的xhtml页面时,我收到以下错误:
java.io.NotSerializableException:foo.bar.SomeDaoClass
我有一个帮助程序DAO的成员,我用它来委托bean中的持久性相关任务.如果我使这个DAO类实现Serializable,那么其他UIComponent引用开始导致相同的错误!
主要的用例是我点击了一个链接,我打开了一个jquery灯箱弹出窗口,显示了一个由会话bean支持的xhtml页面.当用户单击弹出窗体上的提交按钮时,我以编程方式删除会话bean.问题是如果用户单击弹出窗口本身的关闭按钮,并单击指向另一个id的另一个链接,则显示相同的值(是会话作用域)!
我希望在弹出窗口中查看此表单时使用视图范围来保留值,当用户单击弹出窗口的关闭按钮时,可能会丢弃这些值.
小智 5
我希望你已经解决了这个问题,但对于其他登陆这里的人来说,谁不想使用会话范围并使用视图范围作为替代方案,这会迫使你使用serializable实现,你可以使用transient属性旁边的关键字你不想做serializable,如果你想要一个服务或dao,这将是非常有用的.
例:
@ManagedBean(name="addressTableBeanExample4")
@ViewScoped
public class ExampleBean4 implements Serializable {
private static final long serialVersionUID = 1L;
// non serialazable class
private transient List<Customer> data = new ArrayList<Customer>();
private Customer selected;
}
Run Code Online (Sandbox Code Playgroud)