使用jQuery和Ajax实现NullPointerException
这个问题困扰了我很长一段时间了。 我在.js文件中编写了如下代码:-使用jQuery和Ajax实现NullPointerException,jquery,ajax,jsp,servlets,Jquery,Ajax,Jsp,Servlets,这个问题困扰了我很长一段时间了。 我在.js文件中编写了如下代码:- var fname=$("#fname_ship").val(); var lname=$("#lname_ship").val(); 我确保我指的是正确的输入框ID。在我的$.ajax()方法中,我加入了如下内容:- data: {"Reason":"Insert","Fname":fname, "Lname" : lname} fname=request.getParameter("Fname"); lname=re
var fname=$("#fname_ship").val();
var lname=$("#lname_ship").val();
我确保我指的是正确的输入框ID。在我的$.ajax()方法中,我加入了如下内容:-
data: {"Reason":"Insert","Fname":fname, "Lname" : lname}
fname=request.getParameter("Fname");
lname=request.getParameter("Lname");
这些数据被传递到一个servlet,我在其中放入如下内容:-
data: {"Reason":"Insert","Fname":fname, "Lname" : lname}
fname=request.getParameter("Fname");
lname=request.getParameter("Lname");
但是,“lname”始终包含空值。我已经检查了jsp中的输入框ID、my.js中的变量名和servlet中的变量名一百次,它们都匹配。然而,这个错误似乎并没有消失。
对一个类似问题的回答建议使用“jQuery”而不是$,但这也不起作用。
任何帮助都将不胜感激。
(为了更清晰,我在下面放了更大的代码块)
My.js:-
var email=$("#email").val();
var fname=$("#fname_ship").val();
var lname=$("#lname_ship").val();
var addr1=$("#address1").val();
var addr2=$("#address2").val();
var country=$("#country").val();
var mob=$("#mobileNo_ship").val();
var city=$("#city_ship").val();
$.ajax({
type: 'POST',
url: "http://localhost:8085/Flopkart/verifyShippingAddress",
data: {"Reason":"Insert","Email":email ,"Fname":fname,
"Lname" : lname, "Addr1":addr1 ,"Addr2" :
addr2,"Country":country,
"MobileNo":mob, "City":city},
当我将这些值传递给servelt时,“Lname”和“Addr1”都为null
我的servlet:-
reason=request.getParameter("Reason");
email=request.getParameter("Email");
fname=request.getParameter("Fname");
lname=request.getParameter("Lname");
addr1=request.getParameter("Addr1");
addr2=request.getParameter("Addr2");
mobileNo=request.getParameter("MobileNo");
country=request.getParameter("Country");
city=request.getParameter("City");
System.out.println(fname);
System.out.println(lname); //..NullPtrException
my.jsp的一部分:-
<div class="fields">
<div class="six wide required field">
<label>First Name</label> <input id="fname_ship" name="Fname"
type="text" placeholder="First Name">
</div>
<div class="six wide required field">
<label>Last Name</label> <input id="lname_ship" name="LName"
type="text" placeholder="Last Name">
</div>
</div>
<div class="fields">
<div class="seven wide required field">
<label>Shipping Address</label>
<input type="text" name="Address1" id="address1"
placeholder="Street Address">
</div>
<div class="six wide field">
<label>Address 2</label> <input id="address2" name="Address2"
type="text" placeholder="Address 2">
</div>
<div class="five wide required field">
<label>City</label> <input id="city_ship" name="City"
type="text" placeholder="City">
</div>
</div>
名字
姓
送货地址
地址2
城市
先填充数据,而不是像在ajax查询中那样键入json数据,这可能会解决您的问题。前
$(function() {
$('#sub').on('click', function() {
var email = $("#email").val();
var fname = $("#fname_ship").val();
var lname = $("#lname_ship").val();
var addr1 = $("#address1").val();
var addr2 = $("#address2").val();
var country = $("#country").val();
var mob = $("#mobileNo_ship").val();
var city = $("#city_ship").val();
var json = {};
json['Reason'] = "Insert";
json['Email'] = email;
json['Fname'] = fname;
json['Lname'] = lname;
json['Addr1'] = addr1;
json['Addr2'] = addr2;
json['Country'] = country;
json['MobileNo'] = mob;
json['City'] = city;
console.log(JSON.stringify(json));
$.ajax({
type: "POST",
url: "someaction.do?action=saveData",
data: JSON.stringify(json),
dataType: application/json
});
})
});
示例fiddle:尝试:JSON.stringify({“Reason”:“Insert”,“Ema…”)您能否解释一下如何进行更详细的操作。我对此不熟悉。我如何在另一端(servlet)解析接收到的数据?您可以解析JSON字符串:JSONObject jObj=new JSONObject(request.getParameter)(..不。问题是请求参数被作为一个大的JSON字符串发送,而不是作为普通的请求参数。因此servlet无法以通常的方式将它们提取为请求参数。我通过以下其他帖子解决了这个问题。谢谢大家!