Java Wicket+;jsTree,ajax响应中的链接生成
我正在使用jsTree jQuery插件绘制一棵树。 当用户单击一个节点时,将向服务器发送一个包含节点id的ajax请求 在我的回答中,我生成了这样一段html(这在单独的servlet中完成):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
这些项目将在选定节点下绘制
问题是:我应该为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>