正确写法:
Jquery代码:
(因为需要操作其他ajax添加的元素所以不能直接用Jquery获取对象,这里使用如下的javascript代码获取对象并操作)
// ajax搜索方法
function ajaxSearch(argument){
$.ajax({
url:"doSearch.do",
type:"post",
data:{"choose":arguments[0],"fq":arguments[1],"removeFq":arguments[2]},
dataType:"json",
...
});
}
// 第一次调用,用到前两个参数
$(document).on("click",".facet_a",function(){
var $fq=$(this).attr("value");
ajaxSearch('1',$fq);
})
//第二次调用,用到第一个和第三个参数
$(document).on('click','.facet_delete',function(){
var $removeFq=$(this).prev().attr("value");
ajaxSearch('1',undefined,$removeFq);
})
Java代码:
System.out.println("rq:"+request.getParameter("rq"));
//使用第二次的调用时,可以做如下判断,做后续操作
if(request.getParameter("rq")!=null){
...
}
控制台:
rq:null
错误写法:(最开始写法)
Jqurey:
ajaxSearch('1',' ',$removeFq)
ajaxSearch('1',null,$removeFq)
Java:
System.out.println("rq:"+request.getParameter("rq"));
使用第二次的调用时
if(request.getParameter("rq")!=null){
...
}
控制台
rq:
虽然在判断的时候可以通过,但是在后续操作会有未知的错误,比如数组越界,但是我们的初衷是给他赋空值然后通过判断不走if里的语句,与我们的想法相悖,所以,用undefined在js中通过ajax传给后台,后台获取的为null。