【发布时间】:2012-01-16 21:45:25
【问题描述】:
我正在开发一个 Web 应用程序,在该应用程序中,客户端 JavaScript 库 (ExtJS) 使用 JSON 请求有效负载向支持 Struts 的后端发送请求。我的问题是我不知道如何将有效负载中的变量获取到我的 Action 类中。
通过使用日志语句,我知道前端正在调用我的操作类中的正确方法。只是我期望的变量是null,而它们不应该是。
我正在尝试使用struts2-json-plugin 作为拦截器。 Struts 拦截器对我来说是新事物,我在网上找不到任何关于以这种方式使用 struts2-json-plugin 的明确示例。
这是我的pom.xml 中的 Struts 依赖项:
<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>
有什么想法吗?
【问题讨论】:
标签: json jakarta-ee struts2