在 JSF 中使用 POST 而不是 GET 重定向异地页面
在我们网站的付款部分,我从银行获取其 paymentPage URL 和 paymentID。之后,我必须使用 POST 方法而不是 GET 将客户端浏览器重定向到银行 paymentPage URL。请注意,银行 paymentPage URL 不在现场,它未与我们的服务器连接。
我在 JSF 1.2 和 JSF 中找不到明智的解决方案。 Spring 解决了这个问题。一个简单的解决方案是创建一个具有以下正文的简单 jsf 页面(使用 JavaScript):
<body OnLoad="OnLoadEvent();">
<form action="<%=url %>" method="post" name="form1">
<input type="hidden" name="PaymentID" value="<%=paymentId %>" />
</form>
<script language="JavaScript">
function OnLoadEvent() {
document.form1.submit();
}
</script>
您能给我使用 JavaServet API、JSF 和 Spring API 的更好的解决方案吗?
在我看来,在控制器中我有一个方法proceedToPayment(),我将从ServletContext(或FacesContext)获取Request对象。但之后我不知道如何使用 POST 方法转发 paymentPage URL。
PS 看来这是一个更普遍的问题。我在此处找到了类似的 ASP 查询。
In the payment section of our website, I get from the bank its paymentPage URL and paymentID. After that I have to redirect the client browser to the bank paymentPage URL using POST method, not GET. Just to note that the bank paymentPage URL is offsite, it is not connected with our server.
I couldn't find a smart solution in JSF 1.2 & Spring that deals the problem. One trivial solution is to create a simple jsf page with the following body(using JavaScript):
<body OnLoad="OnLoadEvent();">
<form action="<%=url %>" method="post" name="form1">
<input type="hidden" name="PaymentID" value="<%=paymentId %>" />
</form>
<script language="JavaScript">
function OnLoadEvent() {
document.form1.submit();
}
</script>
Can you give me any better solution using the JavaServet API, JSF and Spring APIs?
In my opinion, in the Controller I have a method proceedToPayment() where I will take from ServletContext(or FacesContext) the Request object. But after that I have no idea how to forward paymentPage URL using POST method.
P.S. It seems that it is a more general question. I found a similar query for ASP here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这与 JSF、Spring、PHP、ASP 或任何其他服务器端技术无关。
服务器和客户端之间唯一的通信渠道是 HTTP 标头。并且没有标头可以可靠地强制现代浏览器通过 POST 进行重定向。具有由 Javascript 激活的隐藏字段的表单是唯一的选择。
This has nothing to do with JSF, Spring, PHP, ASP or any other server-side technology.
The only channel of communication between server and client are HTTP headers. And there is no header that would reliably force a modern browser to do a redirect by POST. A Form with a hidden field activated by Javascript is the only choice.