可以的
在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
可以的
在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