我们正在尝试进行三级绑定:
GrandFather - > (有很多)父母 - > (有很多)孩子
我们的GrandFather和父母都保存在数据库中,然后他们自动生成id。但是我们的孩子在某些情况下是新的,他们没有id值。
当我们通过ajax将这些信息发送到我们的服务器(Weblogic)时,我们正在使用以下方式对数据进行绑定:
@RequestMapping(value = "/blablabla/update", method = RequestMethod.POST)
public String updateProducts(@ModelAttribute GrandFather grandpa, BindingResult result, Model model) {
...
}
结果是您在浏览器中看到错误请求错误(使用Firebug)。我们只看到孩子没有ids,其他人的价值观是完美的。在服务器端看不到任何内容,执行方法的任何代码。
那不是问题,但确实如此。关于会发生什么的任何想法?
感谢。
请注意。我们正在使用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 :(得分:1)
是的,我有解决这个问题的方法。 如果您使用ajax发送数据,请不要使用模型属性。 使用控制器中的请求对象获取参数。
像这样编写代码
@RequestMapping(value = "/blablabla/update", method = RequestMethod.POST)
public String updateProducts(HttpServletRequest request, Model model) {
...
}