2016-04-12 54 views
1

我有一種情況,我想用ajax綁定列表數據模型在Spring MVC中使用AJAX

模型類將數據綁定到一個模型類春季:引用EmployeeBean

private List<FamilyBean> familyDetails; 
private String name; 
//Getters and setters 

FamilyBean類去在這裏:

private String memberId; 
private String empUserId; 
private String relationship; 
private String memberName; 
private String age; 
private String occupation; 
private String contact; 
private String isIncludeMedIns; 
private String modefiedBy; 
private String modifiedOn; 
//Getters and Setters 

JSP:

<input type="text" name="familyDetails[0].relationship" value="A"> 
<input type="text" name="familyDetails[0].memberName" value="B"> 
<input type="text" name="familyDetails[0].age" value="C"> 
    <input type="button" value="Previous" name="_target1" id="previous"> 

Ajax調用:

$("#previous").click(function(){    
     $.ajax({     
      type: "POST", 
      url:"saveTempEmployeeData", 
      data:$("#formData").serialize(),//formData is id of the form     
      success:function (map) {      
       //alert("SUCCESS");           
      }, 
      error:function (xhr) { 
       //alert(xhr.statusText+" ERROR"); 
      } 
     }); 
    }); 

春控制器:

@RequestMapping(value="/saveTempEmployeeData", method=RequestMethod.POST, headers="Accept=*") 
public @ResponseBody void saveTempEmployeeData(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("employeeBean")EmployeeBean employeeBean, ModelMap map) throws Exception{    

    userService.saveTempEmployeeData(employeeBean, pageNumber); 

    try{ 
     System.out.println("In controller"); 

    } 
    catch(Exception e){ 

    } 
    response.setContentType("application/json"); 
    response.setCharacterEncoding("ISO-8859-1"); 
    response.getWriter().write(new Gson().toJson(map)); 

} 

數據沒有被綁定到屬性的控制器模型。

有沒有辦法做到這一點?

N.B:<input type="text" name="name" value="Sunny">

此數據被綁定到模型。

+0

你剛剛回答你自己的問題嗎? – bmarkham

+0

不應該在JSP表單中使用'employeeBean.familyDetails [0] .relationship'嗎? –

回答

0
@ModelAttribute("employeeBean")EmployeeBean employeeBean 

這就是問題所在。我改成:

@ModelAttribute EmployeeBean employeeBean 

現在一切正常。

謝謝大家的支持。

0

我認爲,如下圖所示,你應該爲您的輸入控件在JSP:

<input type="text" name="employeeBean.familyDetails[0].relationship" value="A"> 
<input type="text" name="employeeBean.familyDetails[0].memberName" value="B"> 
<input type="text" name="employeeBean.familyDetails[0].age" value="C"> 

這樣Spring將知道它有填充familyDetailsemployeeBean

+0

沒有。不能以這種方式綁定..可能是ajax可以使差異 – Joydeep

+0

你是否得到任何異常,或者你是否嘗試調試代碼,看看發生了什麼?您也可以在JS控制檯中記錄'$(「#formData」)。serialize()'以查看發送到服務器的數據。 ()# –

+0

$(「#formData」)。alert()中的serialize()顯示空白。 @Model屬性在控制器中沒有綁定任何東西 – Joydeep