Я пытаюсь обработать JSON ниже с помощью Spring 3 MVC:
var fields = {
"fields" : [ {
"groupId" : "mission",
"type" : "text",
"id" : "company_name",
"label" : "Nom de l'entreprise",
"size" : 0
}, {
"groupId" : "mission",
"type" : "text",
"id" : "theme",
"label" : "Thème",
"size" : 0
}, {
"groupId" : "mission",
"type" : "textarea",
"id" : "descriptive",
"label" : "Description",
"size" : 0
} ]
};
Вот как я это отправляю:
$.ajax({
type: "POST",
url: "/GestaWeb/internshipConfiguration/proposal",
data: fields
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
Параметры, передаваемые через http (это копия консоли веб-разработчика Chrome):
fields[0][groupId]:mission
fields[0][type]:text
fields[0][id]:company_name
fields[0][label]:Nom de l'entreprise
fields[0][size]:0
fields[1][groupId]:mission
fields[1][type]:text
fields[1][id]:theme
fields[1][label]:Thème
fields[1][size]:0
fields[2][groupId]:mission
fields[2][type]:textarea
fields[2][id]:descriptive
fields[2][label]:Description
fields[2][size]:0
И мой контроллер Spring 3 MVC:
package controller.internshipConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.*;
@Controller
@RequestMapping(value = "/internshipConfiguration")
public class ProposalModelConfigurationController {
@RequestMapping(value = "/proposal", method = RequestMethod.GET)
public ModelAndView form(ModelMap model) {
System.out.println("internship config view");
return new ModelAndView("internship/formModel");
}
@RequestMapping(value="/proposal", method = RequestMethod.POST)
public @ResponseBody String form(@RequestParam(value="fields") String fields) {
System.out.println("Fields rofl: " + fields);
return "ok";
}
}
Когда я выполняю Аякс, у меня 400.
Это работает нормально, если я передаю простой объект, как это: {fields: "foo"}