4

我正在为我的项目前端使用 JSF。我怎样才能用backing bean打开一个新窗口?

4

2 回答 2

6

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

例如

<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>
于 2012-04-18T13:25:57.080 回答
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>
    
于 2013-09-05T14:01:00.613 回答