Spring 框架 - 相同类型的多个模型属性

Spring Framework - Multiple ModelAttributes of Same Type

我正在处理需要送货地址和账单地址的结帐页面。这与第三方库集成,第三方库将它们都实现为相同类型:地址。我需要做的是:

@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 应用程序感到困惑,从而使它能够正常工作。我可能会制作立面模型并将它们映射到控制器内部的真实模型,但如果可以避免的话,我宁愿不走那条路。

编辑: 更改了模型属性名称,希望能使问题区域更加清晰。

不是为每种类型创建单独的模型属性,而是创建一个 Order 对象和模型属性 'order.'

 //Order class
 private Customer customer;
 private Address  shippingAddress;
 private Payment  paymentInformation;
 private Address  billingAddress

..

public Response createOrder(
    @ModelAttribute("order") Order order) {
    // Create the order
}

然后请求看起来像

shippingAddress.city=foo&billingAddress.city=bar