将wicket从1.3.6迁移到1.4.0时更改了哪些方法?

将wicket从1.3.6迁移到1.4.0时更改了哪些方法?,wicket,Wicket,我正在将wicket从1.3.6迁移到1.4.0。我通过getModel()和getModelObject()方法得到语法错误。它说它们是未定义的,所以它们阻止应用程序编译。我应该使用哪些方法来代替它们 这是我代码的一部分: @SuppressWarnings("unchecked") public BreadCrumbTrail(String id, IModel model) { super(id, model); // Keep a count of the crumbs

我正在将wicket从1.3.6迁移到1.4.0。我通过getModel()和getModelObject()方法得到语法错误。它说它们是未定义的,所以它们阻止应用程序编译。我应该使用哪些方法来代替它们

这是我代码的一部分:

@SuppressWarnings("unchecked")
public BreadCrumbTrail(String id, IModel model) {
    super(id, model);

    // Keep a count of the crumbs
    int count = 1;
    // Get the crumbs
    List<Crumb> crumbs = (List<Crumb>) getModelObject();
    // Create a repeating view to render the crumbs within
    RepeatingView repeating = new RepeatingView("crumbs");
    add(repeating);

    // Add each crumb
    for (final Crumb crumb : crumbs) {
        WebMarkupContainer item = new WebMarkupContainer(repeating
                .newChildId());
        repeating.add(item);

        // Create a link from the page held in the crumb
        @SuppressWarnings("serial")
        Link link = new Link("link", item.getModel()) {
            public void onClick() {
                setResponsePage(crumb.getPage());

            }
        };
        // Add a title/label to the link
        link.add(new Label("title", crumb.getTitle()));
        item.add(link);

        // Is this the last crumb?
        if (count == crumbs.size()) {
            // Don't add the normal separator
            item.add(new Label("separator", " "));
            // Disable the link as this is the current page
            link.setEnabled(false);
        } else {
            // Add the separator
            item.add(new Label("separator", " > "));
        }

        // Up the count of crumbs
        count++;
    }
}
@SuppressWarnings(“未选中”)
公共面包屑轨道(字符串id,IModel模型){
超级(id,型号);
//数一数面包屑
整数计数=1;
//去拿面包屑
List crumbs=(List)getModelObject();
//创建一个重复视图以渲染其中的碎屑
RepeatingView repeating=新RepeatingView(“碎屑”);
添加(重复);
//加入每一个面包屑
用于(最终碎屑:碎屑){
WebMarkupContainer项=新的WebMarkupContainer(重复
.newChildId());
重复。添加(项目);
//从保存在crump中的页面创建链接
@抑制警告(“串行”)
Link Link=新链接(“Link”,item.getModel()){
公共void onClick(){
setResponsePage(crumb.getPage());
}
};
//向链接添加标题/标签
add(新标签(“title”,crumb.getTitle());
添加(链接);
//这是最后一块面包屑吗?
if(count==crumps.size()){
//不要添加普通分隔符
添加(新标签(“分隔符”);
//禁用链接,因为这是当前页面
link.setEnabled(false);
}否则{
//添加分隔符
添加(新标签(“分隔符“,“>”));
}
//数一数面包屑
计数++;
}
}

改用
getDefaultModelObject()

Wicket通常提供迁移指南:


顺便说一句:wicket 1.5在这两种方法中都已经过时了

?我是说getModel()和getModelObject()?为什么会有人升级到1.4.[0]?!为什么1.4.19不是目前1.4.x分支中最新的稳定版本?!这个问题根本没有研究成果。谷歌搜索“wicket 1.4 getModelObject”给出了迁移指南作为第一个结果,其中的第一部分是“Component.getModel()和朋友重命名为getDefaultModel()和朋友”。写这个问题比实际寻找解决方案花费的时间要长得多。我在问问题之前就做了,但我得到了一个例外,这与我不知道的其他事情有关!我猜我的方向不对!这就是我问的原因!我选择1.4.0只是因为它是4中的第一个版本。@NoushinKhaki我建议修复明显的编译错误,然后询问您得到的异常。