错误的请求在Spring框架

问题描述:

我们正在尝试做的三级绑定绑定对象:错误的请求在Spring框架

祖父 - >(有很多)母公司 - >(有很多)儿童

我们的爷爷和父母保存在数据库中,然后他们有自动生成的ID。但是我们的孩子在某些情况下是新的,他们没有身份证明。

当我们通过AJAX这个信息发送到我们的服务器(Weblogic的),我们使用做一个绑定到数据:

@RequestMapping(value = "/blablabla/update", method = RequestMethod.POST) 
public String updateProducts(@ModelAttribute GrandFather grandpa, BindingResult result, Model model) { 

... 
} 

的结果是,你看到你的浏览器中的错误请求错误(使用萤火虫)。我们只看到孩子没有ID,其他的价值是完美的。你在服务器端看不到任何东西,你的方法的任何代码都会被执行。

这不会是一个问题,但它是。关于发生什么的任何想法?

谢谢。

注意。我们使用Spring框架; Spring MVC; Weblogic服务器和其他控制器和绑定正在工作。

更新

使用的HTML代码:

<c:forEach items="${question.answers}" var="answer" varStatus="statusAnswer"> 
... 
<c:forEach items="${answer.ratings}" var="rating" varStatus="statusRating"> 
... 
<input type="hidden" name="questions[${statusQuestion.index}].id" value="${question.id}"/> 
<input type="hidden" name="questions[${statusQuestion.index}].respuestas[${statusQuestion.index}].ratings[${statusRating.index}].id" value="${valoracion.id}" /> 
... 
</c:forEach> 
... 
</c:forEach> 

该如何发送它很难粘贴在这里有大量的JavaScript来填补对象的一些值。

+0

写代码,你可以发布你使用呼叫控制器的HTML代码?控制器中是否有任何带有@RequestParam的initBinder? – Javi 2011-05-18 11:48:16

+0

我已经添加了我们使用的html代码。不,我们没有在Controller中使用任何initBinder。 – jenaiz 2011-05-18 13:23:07

+0

@jenaiz我们看不到html代码。 – Javi 2011-05-18 14:17:54

是的,我有解决这个问题的方法。 如果您使用ajax发送数据,请不要使用模型属性。 使用控制器中的请求对象获取参数。这样

@RequestMapping(value = "/blablabla/update", method = RequestMethod.POST) 
public String updateProducts(HttpServletRequest request, Model model) { 

... 
}