В веб-приложении, созданном с использованием Play Framework, у меня есть страница оформления заказа, на которой перечислены корзина покупок пользователя, а также форма адреса. Я создал адресную форму в виде тега (addressform.html), чтобы его можно было повторно использовать.
checkout.html:
#{if shopcart.cartItems}
#{shopcartview customer:customer,shopcart:shopcart/}
#{addressform customer:customer /}
#{/if}
Форма адреса имеет элемент формы #{form @setAddressInfo()}
, который вызывает метод контроллера, как показано ниже
public static void setAddressInfo(Long customerId,...) {
...
showPaymentPage();
}
, который, если все прошло хорошо, переходит на страницу платежей.
Проблема возникает, когда я хочу повторно использовать addressform
на моей странице confirmOrder
.
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
.
Так как мне это сделать? Я могу, конечно, повторно использовать форму адреса в этом случае правильно? Можете ли вы помочь мне понять, как управлять потоком страниц в этом случае?