如何设置Spring Boot中@RequestBody反序列化实体的默认值?

如何设置Spring Boot中@RequestBody反序列化实体的默认值


烙印99
浏览 7334回答 1
1回答

慕神8447489

可以的在web程序开发中,前端和服务器数据的传输方式常用的有两种,一种是以表单的形式提交,此时可以利用jquery的serialize()方法将表单内容转为a=1&b=2&c=3&d=4&e=5这样的格式传输过去,接收端则可以用javabean直接接收。还有一种方式是以json格式传输,接收时若直接用bean接收则接收不到,此时应该用@RequestBody方式,需要注意的是接收的需要是json串,而不是json对象,可以在发送前使用JSON.stringify函数进行处理。例子如下客户端:var url=path+'testConverter.html';$.ajax({url :url,type :"POST",dataType:"json",contentType:'application/json;charset=UTF-8',data:JSON.stringify({userId:'1',userName:'hello',password:'test',credits:'2',lastIp:'',lastVisit:'1986-05-27'}),success :function(data) {alert(data.userName);},error:function(e){alert("err");}服务端:@RequestMapping(value="/testConverter.html")@ResponseBodypublic UsertestConverter(@RequestBody User user){System.out.println(user.getUserName());user.setUserName("testname");returnuser;}上面例子中服务端返回的是个对象,@ResponseBody函数会自动将其转换为客户端要求的‘dataType:"json",’格式。最后需要注意的是1,在xxx-serverlet配置文件中应该写上,以便可以使用@ResponseBody和@RequestBody2,发送时要写上 contentType:'application/json'3,数组内容要用[]而不是list,用list会接收到一个map对象,而不是bean-
打开App,查看更多内容
随时随地看视频慕课网APP