Jsf重定向到新窗口
我正在使用mojarra primefaces tomcat6.x制作一个JSF2.0项目 我制作了一个选择列表,当我选择列表中的项目时,我想重定向到所选的url。它可以是一个内部URL 这是工作,但我想知道是否有可能重定向到新窗口 我有以下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
<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>