Неправильный запрос связывания объектов в Spring Framework - PullRequest
1 голос
/ 18 мая 2011

Мы пытаемся сделать трехуровневую привязку:

Дедушка -> (имеет много) Родитель -> (имеет много) Ребенок

Наш дедушка и его родители сохраняются в базе данных, после чего они автоматически генерируются. Но наши дети являются новыми в некоторых случаях, и у них нет значений идентификатора.

Когда мы отправляем эту информацию через ajax на наш сервер (Weblogic), мы делаем привязку к данным, используя:

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

...
}

В результате вы видите ошибку Bad Request в вашем браузере (используя Firebug). Мы только видим, что у ребенка нет идентификаторов, остальные значения идеальны. Вы не можете видеть ничего на стороне сервера, любой код вашего метода выполняется.

Это не будет проблемой, но это так. Есть идеи о том, что случилось?

Спасибо.

Примечание. Мы используем Spring Framework; 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 Ответ

1 голос
/ 24 апреля 2013

Да, у меня есть решение этой проблемы. Если вы отправляете данные, используя ajax, пожалуйста, не используйте атрибут модели. Получите ваш параметр, используя объект запроса в контроллере.

напишите такой код

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

...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...