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;
    }

}

 

  

posted @ 2020-10-18 12:45  l梁浅  阅读(1202)  评论(0)    收藏  举报