可以的

在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")

@ResponseBody

public User

testConverter(@RequestBody User user)

{

System.out.println(user.getUserName());

user.setUserName("testname");

return

user;

}

上面例子中服务端返回的是个对象,@ResponseBody函数会自动将其转换为客户端要求的‘

dataType:"json",’格式。

最后需要注意的是

1,在xxx-serverlet配置文件中应该写上,以便可以使用

@ResponseBody和@RequestBody

2,发送时要写上 contentType:'application/json'

3,数组内容要用[]而不是list,用list会接收到一个map对象,而不是bean

-

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐