1,在配置SpringMVC的時候在配置文件中配置了
<mvc:annotation-driven>但是在前後端交互的時候傳輸JSON在controller中接受參數的時候不能映射到對象中
<script type="text/javascript">
$(document).ready(function(){
$('#submitForm').click(function(){
var formData = new Object;
formData.Id = 2;
formData.UserName = $('#UserName').val();
var JsonData = JSON.stringify(formData);
console.log(JsonData);
$.ajax({
type : "POST",
url : "/core/test",
dataType : 'text',
contentType: "application/json",
data : JsonData,
success : function(data) {
alert(data);
}
});
});
});
</script>
package com.yk.controllers;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.yk.dto.userDto;
import com.yk.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Controller
public class userController {
@Autowired
private IUserService service1;
@RequestMapping(value = "/test",method = RequestMethod.POST,consumes = "application/json")
@ResponseBody
//@JsonIgnoreProperties(ignoreUnknown = true)//忽略未知屬性
public Object query(@RequestBody userDto dt) {
System.out.println(dt.getUserName());
List<userDto> dto = service1.selectAll();
System.out.println(dto.get(0).getUserName());
return "1";
}
}
找了很多方法都沒解決掉後來在配置中添加了
FastJsonHttpMessageConverter後臺能接收到參數並且映射到對象中
<context:component-scan base-package="com.yk"/>
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<!--<property name="supportedMediaTypes" value="application/json;charset=UTF-8"/>
<property name="features">
<array>
<value>WriteMapNullValue</value>
<value>WriteNullStringAsEmpty</value>
</array>
</property>-->
</bean>
</mvc:message-converters>
</mvc:annotation-driven>