如何使用jQuery发布数据并使用Spring控制器处理它

时间:2014-07-22 10:26:06

标签: java jquery jsp spring-mvc

我在按钮点击时从表单获取值,我想将这些值发布到controller以存储到数据库中。

function PostData() {
        var form = $('#myFormID')[0]; 
        var data = {};
        var dataString = "";

        for(var i=1; i<form.elements.length-1; i++) {
           var element = form.elements[i];
           alert(element.value);
           data[element.name] = element.value; //assuming the name is set on each element
           dataString = (i>0 ? ";" : "") + element.value;
        }

        //var contextPath = "<c:url value="/checkEmailInDB"/>"; //How to send on this url

        $.post("saveContact", data); //OR       
    }

我无法获得如何将这些值存储到数据库中。

在不使用jquery的情况下,我发送了对象并从对象中获取值,如下所示:

@RequestMapping(value = "/saveContact", method = RequestMethod.POST)
public ModelAndView saveContact(@ModelAttribute Contact contact) {
    insertDAO.saveOrUpdate(contact);    //FRom this contact object I was able store values into database    
    return new ModelAndView("redirect:/");
}

有人可以告诉我如何从jquery接收帖子回复并存储到数据库中?

2 个答案:

答案 0 :(得分:4)

 function PostData() {
    var form = $('#myFormID')[0]; 
    var data ;
    var dataString = "";

    for(var i=1; i<form.elements.length-1; i++) {
       var element = form.elements[i];
       alert(element.value);
       //assuming the name is set on each element
       var obj = {element.name : element.value};
       data.push(obj);
      }

    //var contextPath = "<c:url value="/checkEmailInDB"/>"; //How to send on this url

    $.post("saveContact", data); //OR       
}

尝试上面

答案 1 :(得分:0)

在您的JSP上编写JQuery代码,如下所示 -

function PostData() {
   var varFname=$('#fname').val();
   var varLname=$('#lname').val();
   var varEmailId=$('#emailId').val();
   var varPhoneNumber=$('#phoneNumber').val(); 
   var dat = JSON.stringify({"fname" : varFname, "lname" : varLname, "emailId" : varEmailId, "phoneNumber" : varPhoneNumber});

   $.ajax({
            url : "saveContact.ajax",
            type : "POST",
            data : dat,
            contentType : "application/json",
            dataType : "json",
            success : function(response) {
                alert(response);
            },
            error : function() {
                alert("opps.....");
            }
        });
}

写下控制器代码,如下所示 -

 @ResponseBody
 @RequestMapping(value = "/saveContact", method = RequestMethod.POST)
 public Boolean saveContact(@RequestBody Contact contact) {
    insertDAO.saveOrUpdate(contact);    
    //FRom this contact object I was able store    values into database    
    return true;
 }

请记住:

中添加了属性
var dat = JSON.stringify({"fname" : varFname, "lname" : varLname, "emailId" : varEmailId, "phoneNumber" : varPhoneNumber});

必须与POJO attriutes相同。并且联系POJO包含getter setters。

e.g。 &#34; FNAME&#34;是Contact POJO的一个属性。