在getPaList(PageQuery query)的参数前加上@RequestBody就行了,getPaList(@RequestBody PageQuery query).
GET模式下,这里使用了@PathVariable绑定输入参数,非常适合Restful风格。因为隐藏了参数与路径的关系,可以提升网站的安全性,静态化页面,降低恶意攻击风险。
POST模式下,使用@RequestBody绑定请求对象,Spring会帮你进行协议转换,将Json、Xml协议转换成你需要的对象。
@ResponseBody可以标注任何对象,由Srping完成对象——协议的转换。
但我有些奇怪,我以前没有用@RequestBody也能接收到参数,为什么现在不行?是配置原因,终于找到答案。
这是我前台用kendo做的一段代码:
transport : {
read : {
type: "post",
url : "getSatelliteList.do",
dataType : "json"
},
parameterMap : function(options, operation) {
if (operation == "read") {
var parameter = {
page : options.page, //当前页
pageSize : options.pageSize,//每页显示个数
take: options.take,
skip: options.skip
};
return parameter;
}
用这种形式就不用加@RequestBody也能接收到参数。而下面之一种:
transport : {
就必须加@RequestBody才能接收到参数。
两者之间的区别:第一种传过去的参数不是json类型字符串,而是&page=5&pagesize=10....
而第二中传过去的就是{"page":5,"pagesize":10.......}json类型的字符串,它要后台接受解析的话就需要@RequestBody