Jsf重定向到新窗口

Jsf重定向到新窗口,jsf,redirect,jsf-2,new-window,Jsf,Redirect,Jsf 2,New Window,我正在使用mojarra primefaces tomcat6.x制作一个JSF2.0项目 我制作了一个选择列表,当我选择列表中的项目时,我想重定向到所选的url。它可以是一个内部URL 这是工作,但我想知道是否有可能重定向到新窗口 我有以下JSF代码: <h:form> <h:selectOneMenu onchange="this.form.submit();" valueChangeListener="#{wagent.select

我正在使用mojarra primefaces tomcat6.x制作一个JSF2.0项目

我制作了一个选择列表,当我选择列表中的项目时,我想重定向到所选的url。它可以是一个内部URL

这是工作,但我想知道是否有可能重定向到新窗口

我有以下JSF代码:

        <h:form>
            <h:selectOneMenu onchange="this.form.submit();" valueChangeListener="#{wagent.selectBusinessTravelLink}">
                <f:selectItem itemLabel="#{msg['form.select.defaultValue']}" itemValue="" noSelectionOption="true"/>
                <f:selectItems value="#{wagent.businessTravelLinks}" var="bLinkItem" itemLabel="#{bLinkItem.label}" itemValue="#{bLinkItem.id}" />
            </h:selectOneMenu>
        </h:form>
change
事件期间,使用JavaScript函数而不是
form.submit()

假设选择项的值是fullworthy URL,下面是一个示例:

<h:selectOneMenu onchange="window.open(this.options[this.selectedIndex].value)">

使用onclick=“this.form.target=”u blank'(或者在onchange中使用),即



当然,别忘了修复

中的id属性。我要澄清一下,我的列表中有外部和内部url,我只想在新窗口中打开外部url。这很棘手。我只是在JS函数中执行URL确定工作。如果是外部的,则执行
window.open(url)。如果是内部的,则执行
window.location=url
<h:selectOneMenu onchange="window.open(this.options[this.selectedIndex].value)">
<h:form id="form">
    <h:selectOneMenu onchange="this.form.target='_blank'; this.form.submit();" valueChangeListener="#{wagent.selectBusinessTravelLink}">
         <f:selectItem itemLabel="#{msg['form.select.defaultValue']}" itemValue="" noSelectionOption="true"/>
         <f:selectItems value="#{wagent.businessTravelLinks}" var="bLinkItem" itemLabel="#{bLinkItem.label}" itemValue="#{bLinkItem.id}" />
     </h:selectOneMenu>
 </h:form>