81,094
社区成员
发帖
与我相关
我的任务
分享
@RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8")
@ResponseBody
public String ceshijson(String channelId) throws IOException{
Map<String,Object> map = new HashMap<String,Object>();
map.put("channelId", channelId);
ObjectMapper mapper = new ObjectMapper();
channelId = mapper.writeValueAsString(map);
return channelId;
}
这里需要注意是,当使用简单类型即:String这样的类型来接收数据时,不需要使用@RequestBody这个注解。
我之前用了,后台断点调试结果分析 channelId = “channelId=2”.结果被解析成这样。
我前台发送数据的是:
$.ajax({
url:"ceshijson",
type:"post",
dataType:'json',
//contentType:'application/json;charset=utf-8',
data:"channelId="+channelId,
success:function(data){
alert(data);
},
error:function(XMLHttpRequest, textStatus, errorThrown){
alert("Error")
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
});
原本我发送数据格式是data:{"channelId":channelId},并且使用@RequestBody,
但是这样后台得到的数据变成channelId = “channelId=2”。
所以我用手动拼接字符串来发送数据。
当然真正实际应用一般不是用String来接收数据,一般都是pojo类对象来接收!(给自己做总结)ObjectMapper mapper = new ObjectMapper();
channelId = mapper.writeValueAsString(channelId);