0

POST パラメーターを使用してページを外部サイトにリダイレクトする必要がありますが、<form action="url">ここで説明されているようにバニラ HTML を使用できません。

JSF commandButton - POST パラメータを外部サイトに渡す

フォームはjsfフォーム内にあるため、機能しません。

使用することは可能ですか:

FacesContext.getCurrentInstance().getExternalContext().redirect("http://example.com");

どういうわけか追加のバニラフォームなしで POST パラメータを使用しますか? それとも、フォームなしでこれを達成する他の方法がありますか?

4

1 に答える 1

1

次のようなことを試してください:

ジャバスクリプト:

function redirect() {
    document.getElementById("mySubmitButton").submit();
}

XHTML:

<h:form>
     <span onclick="javascript:redirect()" class="linkClass">REDIRECT</span>
</h:form>

<div style="display:none:"> <!-- If you want it hidden -->
    <form action="http://external/myplace.html" method="post"> 
        <input type="hidden" value="value1"></input>
        <input type="submit" id="mySubmitButton"</input>
    </form>
</div>

編集: 別のテストを追加しました。

動的パラメーターの受け渡し:

この例では、常に値を送信すると仮定しています。

ジャバスクリプト:

function redirect(dynamicValue) {
    document.getElementById("dynamicField").value = dynamicValue;
    document.getElementById("mySubmitButton").submit();
}

XHTML:

<h:form>
     <span onclick="javascript:redirect('myValue')" class="linkClass">REDIRECT</span>
</h:form>

<div style="display:none:"> <!-- If you want it hidden -->
    <form action="http://external/myplace.html" method="post"> 
        <input id="dynamicField" type="hidden" value=""></input>
        <input type="hidden" value="value1"></input>
        <input type="submit" id="mySubmitButton"</input>
    </form>
</div>
于 2013-06-21T09:57:56.080 に答える