Java Wicket数据表属性列
当尝试添加指定了sort属性的列时,我得到了一个NPE。对我做错了什么有什么看法吗 这是一节课:Java Wicket数据表属性列,java,datatable,wicket,Java,Datatable,Wicket,当尝试添加指定了sort属性的列时,我得到了一个NPE。对我做错了什么有什么看法吗 这是一节课: @Entity @Table(name="checklist_template") public class CheckListTemplate extends DomainObject implements Comparable<CheckListTemplate>, Serializable { private static final long serialVersion
@Entity
@Table(name="checklist_template")
public class CheckListTemplate extends DomainObject implements Comparable<CheckListTemplate>, Serializable {
private static final long serialVersionUID = 2959377496669050427L;
@Id
@GeneratedValue
private Long id;
@Column(nullable=false)
private String name;
public CheckListTemplate() {}
public CheckListTemplate(String name) {
this.name = name;
}
//some other attributes, getters, setters etc
}
错误在这里:
table.addTopToolbar(new HeadersToolbar(table, null));
您必须在构造函数中提供数据提供程序的实例,而不是
null
。好的,由于附带的myproject.zip代码,我得到了它
table.addTopToolbar(new HeadersToolbar(table, null));
是导致问题的行,您必须向
HeadersToolbar
类传递一个ISortStateLocator。尝试在Wicket源中错误OrderByLink:208
指定的行附加一个调试器,您将能够缩小问题的范围。你的干将做了什么坏事吗?您的findAll()
能否返回空值?checklistTemplateService.findAll()中会发生什么情况?你要传递什么参数?此外,如果名称是必需的属性,则您的域类中不会有公共构造函数。quickstart:@bert findAll仅从DB返回该类的所有对象。它不会返回null或类似的内容。就像我说的,如果我不发送第三个参数,一切都正常,所以这就是问题所在。空构造函数是因为其他原因(spring、hibernate等)而存在的,但感谢大家的提醒和对细节的关注。@CedricGatay我尝试过调试,但没有成功。非常感谢,伙计,Chris在你之前几秒钟就得到了它,希望我能将两者都标记为正确答案!没问题,我在调试代码时发现,我在相关行上放置了一个简单的断点,看到stateLocator为null,在类构造函数中放置了另一个断点,然后读取调用堆栈。如果这个过程可以帮助你找到另一个未来的错误…如果我遇到类似的问题,我会确保在未来尝试它。这是我第一次看到这种更深层次的调试,谢谢你的解释!
table.addTopToolbar(new HeadersToolbar(table, null));
table.addTopToolbar(new HeadersToolbar(table, null));