ボタンのアクションが完了したときに、私はリンクを「クリック」するためにJavaScriptを使用してクライアント側でこれを解決するだろう。利点は、あなたが必要なものを処理するためにボタンを使用することができ、ユーザーがそれらをクリックした場合に通常どおりにリンクが処理されることです。新しいウィンドウでリンクを開くには、target
を追加します(普通の平文HTML a href
が受け入れるすべての値を受け入れます)。だから、私は示唆している:私はちょうど、リンクを検査するには、ブラウザのデバッグツールを使用して、あなたが使用している名前付けコンテナを知らない
function openLinks(){
document.getElementById("myForm:myLink1").click();
document.getElementById("myForm:myLink2").click();
}
:
<p:link id="myLink1" outcome="/admin/page1" target="target1">
<span class="ui-button-text">page1</span>
</p:link>
<p:link id="myLink2" outcome="/admin/page2" target="target2">
<span class="ui-button-text">page2</span>
</p:link>
<p:commandButton action="#{someBean.yourAction}"
oncomplete="openLinks()" />
をあなたはJavaScript関数openLinks
を追加する必要があります実際のid
を見つけます。 j_idtXxx
がある場合は、対応する命名コンテナにid
を設定してください。
JSFは、常にクライアント側でHTML(JavaScriptとCSS)を生成します。多くの場合、同じプレーンhtmlソリューションをそれらに適用できます(openLinks
JavaScript関数は、JSFなしのプレーンhtmlソリューションと同じです)。
@Kukeltje Can 複数のリンクを同時に開くことはできますか? –
いいえ、そうではありません。しかし、他のリンクをクリックする 'onclick'ハンドラを追加することができます。プレーンHTMLを使用する場合と同じようにJavaScriptを使用します。 –