2011-10-06 3 views
2

J'essaye d'envoyer le tableau de l'objet au contrôleur Spring via jQuery AJAX. Voici le code javascript:POST array au contrôleur de Spring via AJAX

var data = new Array(); 
      $.each(products, function (i) { 
       var temp = {}; 
       temp.orpid = products[i].orpid; 
       temp.orpah = $('#orpah' + products[i].orpid).is(':checked'); 
       temp.orpad = $('#orpad' + products[i].orpid).val(); 
       data.push(temp); 
      }); 
      $.postJSON(url + 'save', 
        data, 
        function(response) { 
         if (response.isAuthenticated && response.isAuthorized) { 
          if (response.hasErrors) { 
           $('#routeForm').setErrors(response.errors); 
           hideWait(); 
          } 
         } 
         else 
          redirectToLogin(); 
        }); 

Voici les params qui sont envoyés au serveur:

[{"orpid":10,"orpah":false,"orpad":""},{"orpid":11,"orpah":false,"orpad":""}] 

méthode du contrôleur a la définition suivante:

@RequestMapping(value = "/save", method = RequestMethod.POST, headers = BaseController.AJAX_HEADER) 
public ModelAndView save(@RequestBody HandlingOrderProductActionForm form, HttpServletResponse response) {...} 

où HandlingOrderProductActionForm est:

public class HandlingOrderProductActionForm extends BaseForm { 
public class ActionForm { 
    private Boolean orpah; 
    private String orpad; 
    private Long orpid; 

    public ActionForm() { } 

    public void setOrpah(Boolean orpah) { 
     this.orpah = orpah; 
    } 

    public Boolean getOrpah() { 
     return orpah; 
    } 

    public void setOrpad(String orpad) { 
     this.orpad = orpad; 
    } 

    public String getOrpad() { 
     return orpad; 
    } 

    public void setOrpid(Long orpid) { 
     this.orpid = orpid; 
    } 

    public Long getOrpid() { 
     return orpid; 
    } 
} 

private List<ActionForm> actions; 

/** 
* 
*/ 
public HandlingOrderProductActionForm() { 
    super(); 
} 

public void setActions(List<ActionForm> actions) { 
    this.actions = actions; 
} 

public List<ActionForm> getActions() { 
    return actions; 
} } 

Le problème est que le serveur renvoie une erreur 415:

The server refused this request because the request entity is in a format not supported by the requested resource for the requested method(). 

Toutes les idées? Merci

Répondre

1

Le problème est résolu - il suffit de déplacer l'ActionForm pour séparer la classe!