Juery 使用ajax 传值,后台为null的情况
使用Tomcat Juery 使用ajax 传值,后台为null的情况
$.ajax()的参数data,是发送到服务器的数据,类型为String,必须为 Key/Value 格式。
下面代码中的"data:{id:id,}",左边的"id"指的是key,右边的"id"是value。
即:id:1"data:{id:id,}"和"data:{id:1,}"是一样的。
正确写法如下:
var id =1;
//ajax的使用方法
$.ajax({
url:"http://www.hzhuti.com", //请求的url地址
dataType:"json", //返回格式为json
async:ture, //请求是否异步
data:{
id:id
}, //请求携带的参数值
type:"GET", //请求方式
success:function(data){
//处理接受的ajax数据
},
});
下面是错误写法:
data:id
如果这样写,那么后台收到的值会是null。
Controller中:
@RequestMapping("userbookname")
public List<BookEntity> getusername(String name)
{
IBookDaoimp ibookdaoimp = new IBookDaoimp();
List<BookEntity> nameBook = ibookdaoimp.getNameBook(name); //此时name的值为前台中id对应的值
return nameBook; }
这时候就会出现请求的参数传不到后台。
解决办法:
1:所以Contriller中的传入的参数name 应该改为id。
2:使用@RequestParam注解来解决。
@RequestMapping("userbookname")
public List<BookEntity> getusername(@RequestParam(value="id") String name)
{
IBookDaoimp ibookdaoimp = new IBookDaoimp();
List<BookEntity> nameBook = ibookdaoimp.getNameBook(name);
return nameBook; }
eg:实例代码:
<!---输入文本框--> 目的输入框输入字符 将参数传递到后台模糊查询
书名:<input type="text" id="name" name="name" placeholder="请输入书名"/><br/>
$(function () {
//绑定输入框 失去焦点触发ajax请求
$('#name').blur(function () {
var value = $(this).val();
// alert($(this).val());
$.ajax({
url: "userbookname",
type: "POST",
data: {
name: value
},
success: callback
})
function callback(nameBook) {
}
});
})
@RestController public class BookMainController //页面控制器类 { @RequestMapping("userbookname") public List<BookEntity> getusername(String name) { IBookDaoimp ibookdaoimp = new IBookDaoimp(); List<BookEntity> nameBook = ibookdaoimp.getNameBook(name); return nameBook; } }

浙公网安备 33010602011771号