index.jsp中构造param:
function hello() {
alert("hello");
var mydata = [{"word" : "12345"}];
alert(JSON.stringify(mydata));
$.post('hello', JSON.stringify(mydata), function(text, status) {
alert(text);
});
}
请求接收端的代码如下:
@Controller
public class HelloWorldController
{
@RequestMapping(value = "/hello",method = RequestMethod.POST)
public @ResponseBody HttpSayHelloTestRsp sayHello(
@RequestBody String req) throws UnsupportedEncodingException
{
String decodeStr = URLDecoder.decode(req,"utf-8");
System.out.println("-----------------收到Hello请求\r\n"+decodeStr );
return null;
}
}
但是在HelloWorldController端接收到的decodeStr是[{"word" : "12345"}]=
而且,在firfox浏览器的控制台界面,看到传输的参数是:[{"word" : "12345"}]:
请问各位大神,这是什么情况?
首先没搞清楚你要干嘛,但是如果你纠结等号的问题话:
@RequestBody String req --》请求是json数据,但是post应该不能发送json,换成ajax就没问题了
function hello() {
var mydata = [ {
"word" : "12345"
} ];
$.ajax({
url : '${pageContext.request.contextPath}/test.action',
contentType : 'application/json',//请求json
type : "post",
dataType : 'json',
data : JSON.stringify(mydata),
success : function(data) {
alert(data);
}
});
}
兄弟,你想实现的接收参数是什么?
不配对
@RequestBody String req 这里requestbody是json格式,但定义的是string,应是一个对象数组[]