我需要在一个新的窗口,通过上张贴的点击打开一个JSF页面<h:commandButton>
。 我知道我可以使用JavaScript达致这。 不过,我想实现这一目标使用JSF和JavaScript不。
我怎样才能做到这一点? 我使用JSF 2.0。
我需要在一个新的窗口,通过上张贴的点击打开一个JSF页面<h:commandButton>
。 我知道我可以使用JavaScript达致这。 不过,我想实现这一目标使用JSF和JavaScript不。
我怎样才能做到这一点? 我使用JSF 2.0。
唯一的非JS方式是设置target="_blank"
在父<h:form>
。
<h:form target="_blank">
...
<h:commandButton value="Open in new Window" />
</h:form>
然而,这会影响它们在同样的形式进行的所有非Ajax(!)的行动。 所以,如果你很聪明,让不应该在新窗口中打开一个Ajax动作的动作。 然而,AJAX也是JavaScript和你提到你不想使用JS(我希望,一旦你发现PrimeFaces实际上是完整的JavaScript的你没有得到震惊)。
如果你绝对需要将其限制在一个单一的动作,那么你真的不能去到处问一点帮助的JavaScript。
<h:form>
...
<h:commandButton value="Open in new Window" onclick="this.form.target='_blank'" />
</h:form>
当你限制目标只有一个动作,也许你想在它的初始状态的形式。 随着oncklick行动在表单的目标设定为_blan页面。 点击后,页面在一个新的标签/页面打开(触发操作事件)。 最后,触发的onblur行动,并重新设置形式到初始状态有了这个代码(该按钮将在_self页面打开的其余部分),你可以限制只啊:命令按钮在新页面中打开。 按钮的其余部分将在自页面打开:
<h:commandButton
onclick="this.form.target='_blank'"
onblur="this.form.target='_self'"
id="listadoRebuts"
action="#{giaquaBusquedaCorte.abrirListadoRebuts}"
value="#{msg.seqVisorbtnRecibos}">
</h:commandButton>