2

プライムフェイス 3.5.14、オムニフェイス 1.6

ボタンのように見えるが、外部リンクで新しい空白のページを開くことができる JSF/Prime のコンポーネントはありますか? したがって、通常のリンクとは異なり、クリックすると新しいページの URL が最初にサーバーから保持され、その後新しいページが開かれる必要があります。action メソッドの文字列の結果によって新しい URL が決定される、action 属性を持つコマンドボタンのように。

もちろんp:buttonStyling one JSF external link のように使用して、ボタンのように見せることもできますp:buttonが、その場合、毎回ページで行われたアクションに応じて、によって生成されたリンクを更新する必要があります。これは常に望ましいとは限りません。

4

1 に答える 1

8

target="_blank"新しいウィンドウに送信するには親フォームが必要であり、アクション メソッドでExternalContext#redirect()(または OmniFaces のFaces#redirect()) を呼び出して、ターゲット ウィンドウが指定された URL で新しい GET 要求を送信できるようにする必要があります。重要なのは、<p:commandButton>の代わりにを使用する場合、 を尊重しないため<h:commandButton>、設定も必要です。ajax="false"target="_blank"

したがって、そう:

<h:form target="_blank">
    <p:commandButton value="Submit" action="#{bean.submit}" ajax="false" />
</h:form>

public void submit() throws IOException {
    String redirectURL = determineItSomehow();
    Faces.redirect(redirectURL);
}
于 2013-09-20T14:56:33.993 に答える