1
配送先住所と請求先住所が必要なチェックアウトページを作成しています。これは、サードパーティ製のライブラリと統合されています。サードパーティのライブラリは、両方とも同じタイプ(アドレス)として実装されています。Spring Framework - 同じタイプの複数のModelAttributes
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public Response createOrder(
@ModelAttribute("customer") Customer customer,
@ModelAttribute("shipping") Address shippingAddress,
@ModelAttribute("payment") Payment paymentInformation,
@ModelAttribute("billing") Address billingAddress
) {
// Create the order
}
私はこの作品を作るように、私のSpringアプリケーションに上とまったく同じタイプの2つの別々のモデルを送信する方法で立ち往生しています:私は何をできるようにする必要があることのようなものです。私は潜在的にファサードモデルを作ってコントローラー内の実際のものにマップすることができますが、私がそれを避けることができれば、そのルートを下回らない方がいいでしょう。
編集:モデルの属性名を変更して、問題の領域をより明確にするように変更しました。
ようになります。同じModelAttribute名を使用する必要がある理由はありますか? shippingAddressとbillingAddressにモデル属性の名前を付けることができないのはなぜですか?メソッドのパラメータの型は重要ではありません。 – jjhavokk
データを送信する方法が問題になります。彼らはまったく同じフィールド名を持っているので、 'city = Atlanta&state = Georgia'などは動作しません。それは理にかなっていますか? – dawsonc623