Как я могу отправить объекты в Spring по GET-запросу? - PullRequest
0 голосов
/ 24 августа 2011

Я использую Spring MVC 3, и я хочу сделать AJAX-вызов, отправляющий массив объектов в контроллер. Я хочу, чтобы моя Java выглядела так:

@RequestMapping (value = "/data/save/faults" method = RequestMethod.GET)
public void saveFaultsGET
(
    @RequestParam ("faults") FaultType[] types
) { }

Обратите внимание, что FaultType - это объект, который я написал. Я использую jQuery, и я не уверен, как мне отформатировать URL-адрес моего запроса для достижения этой цели. Также было бы полезно узнать, если это невозможно.

РЕДАКТИРОВАТЬ FaultType выглядит так (геттеры и сеттеры опущены):

public class FaultType {
    private String m_type;
    private boolean m_isTrip;
    private boolean m_isRelay;
    private boolean m_isNonRelay;
}

1 Ответ

1 голос
/ 24 августа 2011

Это очень хорошее вступление: http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/

Ajax-вызов должен выглядеть примерно так:

<c:url var="myURL" value="/data/save/faults" />
...
jq.ajax({
  cache:false,
  type: 'POST',
  url: "${myURL}",
  data:jsonFaultType,
  contentType: "application/json",
  success:  function(data) {            
    // yourFunction to call on success eg:
    alert(data);
}
});

Ваша подпись контроллера должна выглядеть примерно так:

@RequestMapping (value = "/data/save/faults" method = RequestMethod.POST)
public @ResponseBody String create(@RequestBody FaultType faultType){
...
}

Почему вы хотите отправлять объекты с помощью запроса get, POST является методом defacto для отправки данных на сервер . Кроме того, вам не нужно возвращать ответное тело, вы также можете вернуть modelAndView .

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