创建新视图时,应使用@Named注释。但是,如果视图应该是已经存在的类的扩展,那么应该如何实现。要覆盖类中的方法,我使用以下方法:
@ViewScoped
@Specializes
public class classB extends class A{
@Override
public String save(){
}
}
这允许我保留已经生成的实体。
但是视图需要有以下注释:
@Named
@ViewScoped
@URLMapping()
public class classB extends class A{
//content
}
这应该如何在一个班级中实现?考虑到这两个注释不能共存?
这个问题的答案取决于实体最初是如何创建的。如果要扩展管理实体的类,则必须创建一个单独的视图。这意味着一个命名类是管理实体的类的扩展。
在这之后,您必须创建一个关联JSF页面到创建的新命名视图。
若要传递信息,必须创建一个具有专用注释的适当扩展类,才能访问实体。
如果您试图在新视图类中操作实体,则会导致合并错误,因为程序已经认为该实体存在于数据库中。