2011-05-18 64 views
1

我們正在嘗試做的三級綁定綁定對象:錯誤的請求在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

回答

1

是的,我有解決這個問題的方法。 如果您使用ajax發送數據,請不要使用模型屬性。 使用控制器中的請求對象獲取參數。這樣

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

... 
}