Ajax Daten an Controller senden
Ich habe mich gefragt, was der Unterschied zwischen diesen beiden Syntaxen ist:
var value = $("#myForm").serialize();
$.ajax({
type: "post",
url: "testMethod",
data: value
});
und
var value = $("#myForm").serialize();
$.ajax({
type: "post",
url: "testMethod",
data: "valueName=" + value
});
Ich dachte, dass sie gleich sind, aber wenn ich die erste verwende, hat dieses Attribut in meinem Spring-Controller vollständig ausgefüllte Eigenschaften. Wenn ich den zweiten Ansatz verwende, sind alle Eigenschaften des Attributs null?
Hat jemand eine Erklärung dafür?
Das ist meinJSP:
<form:form id="myForm" action="*" modelAttribute="filters" >
<form:input ... path="age" />
<form:input ... path="gender" />
<form:input ... path="location" />
</form:form>
Das ist JS
$('#ok_provinces_btn_id').click(function(){
var second = $('#secondAttr').val();
var f = $("#myForm").serialize();
$.ajax({
type: "post",
url: "testMethod",
data: ?????
});
});
Das ist meinRegler
@RequestMapping(value="testMethod", method=RequestMethod.POST)
public void testMethod(
@ModelAttribute("filters") FiltersWrapper filters,
@RquestParam String second
){
//Here the **second** param is OK
filters.getAge(); //NULL
}