gpt4 book ai didi

java - 管理 Play 中的页面流量!框架标签

转载 作者:太空宇宙 更新时间:2023-11-04 08:31:03 25 4
gpt4 key购买 nike

在使用 Play 框架构建的 Web 应用程序中,我有一个结帐页面,其中列出了用户的购物车以及地址表单。我将地址表单创建为标签 (addressform.html),以便可以重复使用。

结账.html:

#{if shopcart.cartItems}
#{shopcartview customer:customer,shopcart:shopcart/}
#{addressform customer:customer /}
#{/if}

地址表单有一个表单元素#{form @setAddressInfo()}

调用 Controller 方法如下

public static void setAddressInfo(Long customerId,...) {
...
showPaymentPage();
}

如果一切顺利,将转到付款页面。

当我想在 confirmOrder 页面上重用 addressform 时,就会出现问题。

confirmOrder.html:

#{if shopcart.cartItems}
#{shopcartview customer:customer,shopcart:shopcart/}
#{addressform customer:customer /}
#{/if}

<a href="link_to_payment_page">editPaymentInfo</a>

在这里,如果用户更改地址并提交表单,setAddressInfo() 方法将在成功完成后打开付款页面。这不好——用户可能根本不想更改支付信息。此外,我还为那些想要更改付款信息的用户提供了付款页面的链接。我希望显示相同的 OrderConfirm 页面,以便用户可以单击Submit Order 按钮。

那么我该怎么做呢?在这种情况下我肯定可以重复使用地址表单,对吗?您能帮我弄清楚在这种情况下如何管理页面流吗?

最佳答案

您可以提供一个参数,指示通过隐藏输入或类似 java 参数将用户重定向到 setAddressInfo() 的位置。两个选项:

<input type="hidden" name="urlToRedirectUserTo" value="urlToRedirecTo(maybe using @{}..)"/>

或者:

#{form @setAddressInfo("urlToRedirectUserTo")}

在你所做的行动中:

public static void setAddressInfo(String urlToRedirectUserTo) { 
...
...
...
redirect(urlToRedirectUserTo);
}

有更好的选项可以使其更加键入且不易出错,但这个可能已经足够好了。

关于java - 管理 Play 中的页面流量!框架标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7498789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com