如何用支持bean打开新窗口?

时间:2012-04-18 12:15:08

标签: jsf

我在项目前端使用JSF。 我怎样才能用支持bean打开一个新窗口?

2 个答案:

答案 0 :(得分:6)

target="_blank"<h:commandLink>上设置<h:form>

E.g。

<h:form>
    <h:commandLink value="Open in new window" action="#{bean.action}" target="_blank" />
</h:form>

<h:form target="_blank">
    <h:commandButton value="Open in new window" action="#{bean.action}" />
</h:form>

答案 1 :(得分:0)

除了BalusC的回答。 在以下情况下的一种hacky解决方案:

  • commandLink不能在UI中使用(因为页面样式或任何其他原因)
  • 表单的目标无法更改

    <!-- Group and render them together.-->
    <h:panelGroup rendered="#{mybean.showButton}">
    
    <!-- Visible and clickable commandButton. No action, just onclick js event.-->
    <h:commandButton value="My Commandbutton"
    onclick="document.getElementById('myForm.realTargetBlankLink').click();"/>
    
    <!-- Invisible link. Action, target _blank.-->
    <h:commandLink id="realTargetBlankLink" action="#{myBean.myDesiredAction}"
    target="_blank"/>
    
    </h:panelGroup>