Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Wicket+;jsTree,ajax响应中的链接生成_Java_Ajax_Wicket_Jstree - Fatal编程技术网

Java Wicket+;jsTree,ajax响应中的链接生成

Java Wicket+;jsTree,ajax响应中的链接生成,java,ajax,wicket,jstree,Java,Ajax,Wicket,Jstree,我正在使用jsTree jQuery插件绘制一棵树。 当用户单击一个节点时,将向服务器发送一个包含节点id的ajax请求 在我的回答中,我生成了这样一段html(这在单独的servlet中完成): 这些项目将在选定节点下绘制 问题是:我应该为href属性使用什么值来引用wicket页面?也就是说,我需要指向带有一些参数的类主页的链接。您需要的是返回一些对象的or: 以下是一个示例组件: public class JsTree extends Panel{ private s

我正在使用jsTree jQuery插件绘制一棵树。 当用户单击一个节点时,将向服务器发送一个包含节点id的ajax请求

在我的回答中,我生成了这样一段html(这在单独的servlet中完成):

  • 这些项目将在选定节点下绘制

    问题是:我应该为href属性使用什么值来引用wicket页面?也就是说,我需要指向带有一些参数的类主页的链接。

    您需要的是返回一些对象的or:

    以下是一个示例组件:

    public class JsTree extends Panel{
    
        private static final long serialVersionUID = 1L;
    
        public JsTree(final String id, final IModel<List<MyDomainObject>> model){
            super(id);
            this.add(new ListView<MyDomainObject>("list", model){
    
                private static final long serialVersionUID = 1L;
    
                @Override
                protected void populateItem(final ListItem<MyDomainObject> item){
                    MyDomainObject modelObject = item.getModelObject();
                    final Map<String, String> params =
                        Collections.singletonMap("id", modelObject
                            .getObjectId());
                    item.add(
                        new BookmarkablePageLink<Void>(
                            "link", MyPage.class,
                            new PageParameters(params)
                        ).add(new Label("label",modelObject.getName()))
                    ).setOutputMarkupId(true);
    
                }
            });
        }
    }
    
    公共类JsTree扩展面板{
    私有静态最终长serialVersionUID=1L;
    公共JsTree(最终字符串id,最终IModel模型){
    超级(id);
    添加(新列表视图(“列表”,模型){
    私有静态最终长serialVersionUID=1L;
    @凌驾
    受保护的无效填充项(最终列表项){
    MyDomainObject modelObject=item.getModelObject();
    最终映射参数=
    Collections.singletonMap(“id”),modelObject
    .getObjectId());
    item.add(
    新的BookmarkablePageLink(
    “link”,MyPage.class,
    新页面参数(参数)
    ).add(新标签(“标签”,modelObject.getName()))
    ).setOutputMarkupId(真);
    }
    });
    }
    }
    
    以及相应的HTML:

    <html>
    <body>
    <wicket:head></wicket:head>
    <wicket:panel>
        <ul class="jsTree">
            <li wicket:id="list">
                <a href="#" wicket:id="link">
                    <wicket:container wicket:id="label" />
                </a>
            </li>
        </ul>
    </wicket:panel>
    </body>
    </html>
    
    
    
    我使用了一个只有id和名称的
    MyDomainObject
    类型。将显示名称,id将链接到。基本上,您可以向
    BookmarkablePageLink
    添加任何可序列化的参数,然后使用该方法从链接到的页面解析参数

    <html>
    <body>
    <wicket:head></wicket:head>
    <wicket:panel>
        <ul class="jsTree">
            <li wicket:id="list">
                <a href="#" wicket:id="link">
                    <wicket:container wicket:id="label" />
                </a>
            </li>
        </ul>
    </wicket:panel>
    </body>
    </html>