以下代码为AJAX CALL提供了400-BAD REQUEST错误。
在下面的代码中有一个表格,我填写所有学生记录,如 带编辑和删除按钮的rollnumber,名字,姓氏和地址 现在我正在编辑EDIT按钮。
要求: - 点击编辑按钮,它应该使表格属性可用于特定行的编辑,编辑点击更新后它应该更新到数据库,并且应该再次显示表格中的不可编辑字段。 下面是我的控制器类
@RequestMapping(value="/updatetemp",method = RequestMethod.POST,produces =
{"application/json"})
SQLException{
@ResponseBody
public boolean edit(@RequestParam("rollnumber") int rollnumber,
@RequestParam("firstname") String firstname,
@RequestParam("surname") String surname,
@RequestParam("address") String address)
throws SQLException{
Student s = new Student();
s.setRollnumber(rollnumber);
s.setFirstname(firstname);
s.setSurname(surname);
s.setAddress(address);
if(this.studentService.update(s)){
return true;
}else{
return false;
}
}
以下是我的Jquery和Ajax调用代码
$(document).ready(function() {
$(document).on('click','#editlink',function(){
var par = $(this).parent().parent();
var tdName = par.children("td:nth-child(2)");
var tdPhone = par.children("td:nth-child(3)");
var tdEmail = par.children("td:nth-child(4)");
tdName.html("<input type='text' class='firstname'
value='"+tdName.html()+"'/>");
tdPhone.html("<input type='text' class='lastname'
value='"+tdPhone.html()+"'/>");
tdEmail.html("<input type='text' class='address'
value='"+tdEmail.html()+"'/>");
$("#editlink").prop('disabled',true);
});
$(document).on('click','#updatelink',function(){
var rollnumber = $(this).parent().siblings('.rollnumber').text();
var firstname;
var surname;
var address;
$(this).parent().siblings("td.firstname").
find("input.firstname").each(function() {
firstname = (this.value);
});
$(this).parent().siblings("td.lastname").
find("input.lastname").each(function() {
surname = (this.value);
});
$(this).parent().siblings("td.address").
find("input.address").each(function() {
address = (this.value);
});
var studentjson = { rollnumber: rollnumber, firstname: firstname,
surname: surname,address: address };
$.ajax({
type: 'POST',
url: 'http://localhost:8080/SpringDemo/updatetemp',
data: studentjson,
contentType: 'application/json; charset=utf-8',
success: function (response) {
console.loge(response);
if(response == true){
$(this).parent().siblings("td.firstname").html("<td
class='firstname'>"+firstname+"</td>");
$(this).parent().siblings("td.lastname").html("<td
class='lastname'>"+surname+"</td>");
$(this).parent().siblings("td.address").html("<td
class='address'>"+address+"</td>");
}
}
});
});
我认为主要的问题是我的AJAX电话....请帮助我。我已经两天努力了...我是新手!
答案 0 :(得分:0)
您的控制器有@RequestParam,而您在调用中将studentjson作为正文传递。要将某些内容作为请求参数传递,请将数据作为
发送"'http://localhost:8080/SpringDemo/updatetemp"+ "?rollnumber=" + rollnumber + "&firstname=" + firstname + "&surname=" + surname + "&address=" + address
相反,我会要求您将控制器的编辑方法更改为@RequestBody POJOClass pojoClass,并且所有字段rollnumber,firstname,surname,address应该是POJOClass中的属性