【发布时间】:2017-12-15 15:35:50
【问题描述】:
在表格单元格中,我必须创建一个 Wicket ExternalLink,以在新的浏览器选项卡中显示响应。
我用过这段代码(Wicket 7.9):
columns.add(new AbstractColumn<WebService, String>(Model.of(" "))
{
@Override
public void populateItem(Item<ICellPopulator<WebService>> cellItem, String componentId,
IModel<WebService> serviceModel)
{
WebService ows = serviceModel.getObject();
String url = "http://www.geodata.com/map?service=WMS&request=GetCapabilities";
ExternalLink capabilitiesLink =
new ExternalLink(componentId, Model.of(url), Model.of("Caps"))
{
@Override
protected void onComponentTag(ComponentTag tag)
{
super.onComponentTag(tag);
tag.put("target", "_blank");
}
};
cellItem.add(capabilitiesLink);
}
});
但是 Wicket 会呈现这个:<div onclick="window.location.href='http://www.geodata.com/maps?service=WFS&amp;request=GetCapabilities';return false;" target="_blank">Caps</div>
这不会打开一个新标签。
表格 HTML 标记是由 Wicket 生成的,所以我无法在相应的标记中插入<td><a wicket:id="link" href="..."></a></td>。
如何强制 Wicket 渲染 <a href=" ... " target="_blank">Caps</a>?
或者,当我无法避免使用onClick (Javascript) 时,如何创建新的浏览器选项卡?
【问题讨论】: