如何在Spring MVC中将字符串转换为对象

时间:2016-07-17 14:20:53

标签: json spring-mvc jackson gson converter

我需要提交两个表单和一个提交按钮,所以我做了JS功能:

var submitAllForms = function(){
    var paymentForm = $("#paymentsDetailsForm").serialize();
    var orderForm = $("#orderForm").serialize();
        $.ajax({
          method: "post",
          url: "/order",
          dataType: 'json',
          data: { paymentsDetailsForm : JSON.stringify(paymentForm), orderForm : JSON.stringify(orderForm) },
          success: alert('form has been sent')
        });
}

有我的表格:

@Data
public class PaymentDetailsForm  implements Serializable {

    private Date storageDate;
    private String paymentMethod;
    ...
}

@Data
public class OrderForm implements Serializable {

    private String company;
    private String sizeOfMove;
    ... 
}

有我的控制器:

    @RequestMapping(value = "/order", method = RequestMethod.POST)
    public ModelAndView handleOrder(String paymentsDetailsForm, String orderForm) {
        // How to cast paymentsDetailsForm to PaymentsDetailsForm
        // How to cast orderFormto OrderForm
        ModelAndView model = new ModelAndView();
        model.addObject("paymentsDetailsForm", new PaymentDetailsForm());

        model.setViewName("/order");
        return model;
    }

}

所以在控制器中,参数" orderForm"看起来像:"公司= ROYAL_MOVING& sizeOfMove = STUDIO ..."

如何将字符串参数转换为OrderForm和PaymentsDetailsForm?或者这个问题(在一个方法中提交和处理多个表单)可能会以另一种方式解决?

1 个答案:

答案 0 :(得分:2)

它是一个JSON字符串,所以不要担心。您可以在Google中进行搜索,因为有很多方法可以将JSON字符串反序列化为对象。

另一种方法是来自&的第一个分裂字符串签名然后再从=符号中拆分每个组,现在您可以将这些值与您的对象一起映射到循环中。