Open new window by POST using h:commandButton

The only non-JS way is to set target="_blank" in the parent <h:form>.

<h:form target="_blank">
    ...
    <h:commandButton value="Open in new Window" />
</h:form>

This however affects all non-ajax(!) actions which are performed in the very same form. So if you’re smart, make the action which shouldn’t open in a new window an ajax action. However, ajax is also JavaScript and you mentioned that you don’t want to use JS (I hope you don’t get shocked once you discover that PrimeFaces is actually full of JavaScript).

If you absolutely need to restrict it to a single action, then you really can’t go around asking little help to JavaScript.

<h:form>
    ...
    <h:commandButton value="Open in new Window" onclick="this.form.target="_blank"" />
</h:form>

Leave a Comment