Play フレームワークを使用して構築された Web アプリには、ユーザーのショッピング カートとアドレス フォームを一覧表示するチェックアウト ページがあります。再利用できるように、アドレスフォームをタグ (addressform.html) として作成しました。
checkout.html:
#{if shopcart.cartItems}
#{shopcartview customer:customer,shopcart:shopcart/}
#{addressform customer:customer /}
#{/if}
住所フォームには form 要素があります#{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()
メソッドは正常に完了すると支払いページを開きます。これは良くありません。ユーザーは支払い情報をまったく変更したくないかもしれません。また、支払い情報を変更したいユーザーのために、支払いページへのリンクを提供しています。ユーザーがSubmit Order
ボタンをクリックできるように、同じ OrderConfirm ページが表示されるようにします。
では、どうすればいいですか?この場合、確かに住所フォームを再利用できますよね? この場合、ページ フローを管理する方法を理解するのを手伝ってもらえますか?