Я работаю над веб-приложением, в котором клиентская библиотека JavaScript (ExtJS) отправляет запросы в мой бэкэнд с поддержкой Struts с полезной нагрузкой JSON-запроса.Моя проблема в том, что я не могу понять, как получить переменные из полезной нагрузки в мой класс Action.
Я знаю, используя операторы журнала, что из моего интерфейса вызывается правильный метод в моем классе действий.Просто я ожидаю переменные null
, когда их не должно быть.
Я пытаюсь использовать struts2-json-plugin
в качестве перехватчика.Перехватчики Struts являются новыми для меня, и я не смог найти в Интернете каких-либо четких примеров использования struts2-json-plugin
.
Вот зависимости Struts в моем pom.xml
:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.2.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>2.2.3.1</version>
</dependency>
Вот тело запроса (заботится о Firebug):
{"id":15,"translation":"Blah blah"}
Соответствующие части моего класса Action выглядят так:
public class TranslationsAction extends ActionSupport {
private Long id;
private String translation;
public String save() throws Exception {
log.debug("TranslationsAction.save() called.");
log.debug("ID: " + this.id + ", Translation: " + this.translation);
return "{\"foo\":\"bar\"}";
}
public void setId(Long id) {
this.id = id;
}
public void setTranslation(String translation) {
this.translation = translation;
}
}
Здесь актуальнычасти моего struts.xml
:
<package name="foo" namespace="/foobar" extends="json-default">
<action name="save-translation" method="save"
class="my.package.name.action.TranslationsAction">
<result name="success">/jsp/json.jsp</result>
</action>
</package>
Есть идеи?