2013-06-21 40 views
0

我需要重定向頁面與POST參數外部網站,但我不能用香草HTML <form action="url">喜歡在這裏解釋:FacesContext的重定向與POST參數

JSF commandButton - passing POST params to an external site

,因爲這樣的形式將內jsf形式 - 它不起作用。

是否有可能使用:

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

與POST參數,無需額外的香草形式不知何故?或者也許還有其他方法可以讓這種無形式成爲現實?

+0

我明白,你在你的主HTML和你內心想做的重定向有一個表格。你可以在外面創建另一個FORM並用javascript召喚它。 – maqjav

+0

這是個不錯的主意,但問題是我需要爲表格中每一行的項目動態創建幾個按鈕。 – robson

+0

每個人都發送不同的參數?,也許你可以實現你的JS函數接收這些參數,並修改形式,或者如果差異只是URL,然後通過URL。 – maqjav

回答

1

嘗試這樣:

JAVASCRIPT:

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> 

編輯:添加另一個測試。

傳送動態參數

在這個例子中,我們假設我們總是要發送的值。

JAVASCRIPT:

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> 
+0

我喜歡這個解決方案,但如何通過不同的值取決於我按下按鈕?我需要傳遞表中的一個值 - #{v.value}。 – robson

+0

@robson我添加了另一個版本傳遞參數,我希望這是你在找什麼:) – maqjav

+0

@BalusC - 你有更好的嗎? – robson