В нашем JSP есть следующий вызов Ajax:
$.postJSON("${sendStatus}", command,
getData(data),
{ error: onError }
);
И метод в нашем контроллере выглядит так:
@ActionMapping(params = "action=/status")
public @ResponseBody
Status sendMessage(@RequestParam("command") final MyCommand command) {
logger.info("sending message");
final Status status = sender.sendMessage(
MyCommand.getProperties(), command.getMessage());
return status;
}
Это сработало в нашей оригинальной версии сервлета. И затем мы развернули его в Liferay с небольшой работой над JSP, чтобы сообщить Liferay, что такое URL для публикации. Но когда мы его запустим, объект «команда» будет нулевым.
Мы видим оператор лога «отправка сообщения», и мы убедились, что в FireBug нет ошибок JavaScript. Поэтому Liferay отправляет его по правильному URL-адресу, и контроллер работает, но параметр «command» не задан.
Есть идеи, что происходит?