2013-04-29 29 views
1

我試用this示例...學生類對象正在控制器端獲得。我們可以直接使用它。但是這裏的頁面正在提交。如何在不刷新頁面的情況下使用jquery ajax保存Spring表單數據?

這裏我希望它調用post方法使用jquery ajax和發佈數據作爲類對象。而不是發送每個輸入字段值。

我該如何做到這一點?

例如我想POST請求發送到該控制器

@RequestMapping(value = "/addStudent", method = RequestMethod.POST) 
    public String addStudent(@ModelAttribute("SpringWeb")Student student, 
    ModelMap model) { 
     //here will be my code to use student object.... 

     return "result"; 
    } 

使用這種形式的春季..

<form:form method="POST" action="/HelloWeb/addStudent"> 
    <table> 
    <tr> 
     <td><form:label path="name">Name</form:label></td> 
     <td><form:input path="name" /></td> 
    </tr> 
    <tr> 
     <td><form:label path="age">Age</form:label></td> 
     <td><form:input path="age" /></td> 
    </tr> 
    <tr> 
     <td><form:label path="id">id</form:label></td> 
     <td><form:input path="id" /></td> 
    </tr> 
    <tr> 
     <td colspan="2"> 
      <input type="submit" value="Submit"/> 
     </td> 
    </tr> 
</table> 
</form:form> 

回答

2

我將與現有回答的問題.. jQuery AJAX submit form

對於Spring的模型屬性映射工作,你只需要確保表單輸入名稱保持一致。逐步將傳統表單提交到ajax樣式表單提交的最佳方式是捕獲表單提交事件,序列化表單並進行ajax調用。由於所有參數名稱和值將保持一致,您的後端代碼將按原樣工作。

注意:您必須以不同的方式處理回覆,因爲正常表單提交返回成功或錯誤頁面,而使用ajax則需要其他內容。但由於這個問題是關於表單提交的,所以不會詳細討論響應處理。

希望這回答你的問題。

+0

我會看看jQuery表單插件。這很好地處理ajax表單。我們目前在我們的spring mvc應用程序中使用它。 – 2013-04-29 14:46:36

+0

表單插件是引用的問答中提到的選項之一,我個人更喜歡遠離插件,除非我真的需要它們..如果我需要一個簡單的序列化,我寧願自己做。 – Akshay 2013-04-29 14:57:18

+0

謝謝@Akshay ..這是什麼即時尋找..你已經給我的工作給我的鏈接.... – Bhushan 2013-04-30 14:26:57

1

你將不得不形式值轉換成JSON,並使用和AJAX發佈請求提交數據到服務器。

我使用jQuery的toObject插件做了它。和JSON stringify功能。

+0

感謝您的回覆......我可以將表單值轉換爲json。像{「名稱」:「名稱值」,...}像這樣的東西......但不是分配每個值我希望後類對象在上面的例子中學生對象得到控制器...或者是有任何方式轉換modelattribute對象得到轉換爲json。 – Bhushan 2013-04-29 13:39:13

+0

您可以將其轉換爲您喜歡的任何json結構。然後創建一個控制器方法來接受它。所以是的,它會看起來像{「myclass」:{「name」:「john」}}。我的格式化/語法可能是borked,我總是froget corect json。但你肯定可以,那就是json的kida thpo epoitn。 – NimChimpsky 2013-04-29 13:45:29

+0

@Bhushan如果你想在工作參數映射中使用相同的控制器方法/預先存在的方法,另一個答案是好的。 – NimChimpsky 2013-04-29 14:19:01

相關問題