0

我需要使用 POST 参数将页面重定向到外部站点,但我不能<form action="url">像这里解释的那样使用 vanilla HTML:

JSF commandButton - 将 POST 参数传递给外部站点

因为那样该表单将在 jsf 表单中 - 它不起作用。

是否可以使用:

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

以某种方式使用没有额外香草形式的 POST 参数?或者也许还有其他方法可以在没有形式的情况下实现这一目标?

4

1 回答 1

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>
于 2013-06-21T09:57:56.080 回答