2016-04-12 56 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