使用target="_blank"属性时p:linkButton无法在新标签页打开
替换为原生链接+PrimeFaces按钮样式
部分PrimeFaces版本的p:linkButton对target="_blank"的支持存在问题,改用原生<h:outputLink>并套用PrimeFaces按钮样式,既能保持视觉一致性,又能让target属性正常生效:<h:outputLink value="http://myLink/" target="_blank" styleClass="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"> <span class="ui-button-text">跳转链接</span> </h:outputLink>手动通过点击事件强制打开新标签
若坚持使用p:linkButton,可以通过onclick事件手动触发新标签页打开,同时阻止组件默认跳转逻辑:<p:linkButton href="http://myLink/" onclick="window.open(this.href, '_blank'); return false;"/>升级PrimeFaces版本
旧版本(如5.x及更早)的p:linkButton存在target属性兼容bug,升级到10+的稳定版本通常能直接解决该问题,升级前需做好项目兼容性测试。校验href属性的合法性
确保href的值是完整的绝对URL(包含http/https前缀),相对路径需匹配项目上下文路径配置,非法URL可能被浏览器拦截,导致新标签无法打开。
内容的提问来源于stack exchange,提问作者Braulio A. Sássi
相关产品推荐
相关产品推荐

