Primefaces 在新窗口中打开云链接

Primefaces 在新窗口中打开云链接,primefaces,Primefaces,我用的是primefaces tagcloud。但是当我点击tagcloud上的链接时,它会在同一个窗口中打开。但是点击tagcloud链接时,它会在一个新窗口中打开,而不是在同一个窗口中。 我想在点击tagcloud链接时打开一个新窗口。 有人能帮我解决这个问题吗?JavaScript解决方案: 一种可能的方法是JavaScript: <p:tagCloud model="#{tagCloudBean.model}" onclick="preventDefault(event)">

我用的是primefaces tagcloud。但是当我点击tagcloud上的链接时,它会在同一个窗口中打开。但是点击tagcloud链接时,它会在一个新窗口中打开,而不是在同一个窗口中。 我想在点击tagcloud链接时打开一个新窗口。
有人能帮我解决这个问题吗?

JavaScript解决方案:

一种可能的方法是JavaScript:

<p:tagCloud model="#{tagCloudBean.model}" onclick="preventDefault(event)">
    <p:ajax event="select" update="msg" listener="#{tagCloudBean.onSelect}" />
</p:tagCloud>
此外,通过添加ajax事件,您可以调用托管bean中的侦听器

public void onSelect(SelectEvent event) {
    TagCloudItem item = (TagCloudItem) event.getObject();
    String url = item.getUrl();
    String script = "window.open('" + url + "');"
    RequestContext.getCurrentInstance().execute(script);
}
在那里,您可以访问TagCloudItem的url并执行JavaScript语句,该语句将打开一个新的浏览器窗口


这个可能的解决方案未经测试,但请试一试。

我也尝试过这个带有目标元素的解决方案。但它还是在同一扇窗户上打开的,非常感谢。工作正常。但是除了javascript还有其他方法吗???没问题。不幸的是,我想不出另一个解决办法。我知道这些JavaScript解决方案不是最好的。
public void onSelect(SelectEvent event) {
    TagCloudItem item = (TagCloudItem) event.getObject();
    String url = item.getUrl();
    String script = "window.open('" + url + "');"
    RequestContext.getCurrentInstance().execute(script);
}