Cách không phải JS duy nhất là đặt target="_blank"
trong phụ huynh <h:form>
.
<h:form target="_blank">
...
<h:commandButton value="Open in new Window" />
</h:form>
Tuy nhiên điều này ảnh hưởng đến tất cả hành động phi ajax (!) Được thực hiện theo hình thức rất giống nhau. Vì vậy, nếu bạn thông minh, hãy thực hiện hành động không nên mở trong cửa sổ mới là hành động ajax. Tuy nhiên, ajax cũng là JavaScript và bạn đã đề cập rằng bạn không muốn sử dụng JS (tôi hy vọng bạn không bị sốc khi bạn phát hiện ra rằng PrimeFaces thực sự đầy JavaScript).
Nếu bạn hoàn toàn cần hạn chế nó cho một hành động, thì bạn thực sự không thể đi xung quanh yêu cầu trợ giúp nhỏ cho JavaScript.
<h:form>
...
<h:commandButton value="Open in new Window" onclick="this.form.target='_blank'" />
</h:form>
phải là cửa sổ? hoặc nó có thể là một tab mới? – Damian
Tab mới cũng tốt. Khi bạn bấm vào nút lệnh Tôi muốn một trang được mở trong một tab mới. – vr3w3c9
trong một commandLink, bạn đạt được điều này thêm mục tiêu = "_ trống", nhưng tôi nghĩ rằng không có cách nào để làm điều này trong một commandButton mà không javascript – Damian