2016-07-17 15 views
1

ich mit einem Submit-Button müssen einreichen zwei Formen Objekt, so dass ich JS Funktion:Wie String konvertieren

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') 
     }); 
} 

Es gibt meine Formen:

@Data 
public class PaymentDetailsForm implements Serializable { 

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

@Data 
public class OrderForm implements Serializable { 

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

Es gibt mein Controller:

@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; 
    } 

} 

So in der Steuerung der Parameter "Bestellschein" wie folgt aussieht: „company = ROYAL_MOVING & sizeOfM ove = STUDIO ... "

Wie kann ich String-Parameter in OrderForm und PaymentsDetailsForm konvertieren? Oder dieses Problem (mehrere Formulare in einer Methode senden und behandeln) kann auf andere Weise gelöst werden?

Antwort

2

Es ist eine JSON-Zeichenfolge, also keine Sorge. Sie können in Google suchen, da es viele Möglichkeiten gibt, eine JSON-Zeichenfolge in ein Objekt zu deserialisieren.

Ein weiterer Weg ist, dass die erste Split-String von & Zeichen und dann wieder teilen Sie jede Gruppe von = Zeichen und jetzt können Sie diese Werte mit Ihrem Objekt in einer Schleife zuordnen.