Spring Framework中的错误请求绑定对象

时间:2011-05-18 10:43:46

标签: java spring jsp spring-mvc binding

我们正在尝试进行三级绑定:

  

GrandFather - > (有很多)父母 - > (有很多)孩子

我们的GrandFather和父母都保存在数据库中,然后他们自动生成id。但是我们的孩子在某些情况下是新的,他们没有id值。

当我们通过ajax将这些信息发送到我们的服务器(Weblogic)时,我们正在使用以下方式对数据进行绑定:

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

...
}

结果是您在浏览器中看到错误请求错误(使用Firebug)。我们只看到孩子没有id​​s,其他人的价值观是完美的。在服务器端看不到任何内容,执行方法的任何代码。

那不是问题,但确实如此。关于会发生什么的任何想法?

感谢。

请注意。我们正在使用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来填充对象的一些值。

1 个答案:

答案 0 :(得分:1)

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

像这样编写代码

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

...
}