Jsf 使用h:commandButton通过POST打开新窗口
我需要通过点击Jsf 使用h:commandButton通过POST打开新窗口,jsf,http-post,commandbutton,new-window,Jsf,Http Post,Commandbutton,New Window,我需要通过点击在一个新窗口中打开一个JSF页面。我知道我可以用JavaScript实现这一点。但我希望使用JSF而不是JavaScript来实现这一点 <h:form> ... <h:commandButton value="Open in new Window" onclick="this.form.target='_blank'" /> </h:form> 我怎样才能做到这一点?我正在使用JSF2.0。唯一的非JS方式是在父级中设置tar
在一个新窗口中打开一个JSF页面。我知道我可以用JavaScript实现这一点。但我希望使用JSF而不是JavaScript来实现这一点
<h:form>
...
<h:commandButton value="Open in new Window" onclick="this.form.target='_blank'" />
</h:form>
我怎样才能做到这一点?我正在使用JSF2.0。唯一的非JS方式是在父级
中设置target=“\u blank”
...
但是,这会影响以相同形式执行的所有非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。
其余按钮将在自助页面中打开:
<h:commandButton
onclick="this.form.target='_blank'"
onblur="this.form.target='_self'"
id="listadoRebuts"
action="#{giaquaBusquedaCorte.abrirListadoRebuts}"
value="#{msg.seqVisorbtnRecibos}">
</h:commandButton>
必须是一个窗口吗?或者是新标签?新标签也可以。当您单击命令按钮时,我希望在新选项卡中打开一个页面。在commandLink中,您可以实现添加目标=“_blank”,但我认为在commandButton中,如果没有JavaScriptThank Damian的输入,就无法做到这一点。我已经能够使用commandLink建立这个。但我想用commandButton实现同样的效果。另外,如果我们可以在后端指定javascript代码,以在新选项卡中打开页面,是否也存在问题??请帮忙。提前谢谢。从问题中可以看出:“我知道我可以用javascript实现这一点。但是我想用JSF代码而不是javascript实现这一点。”