我目前正在创建一个web应用程序,用户可以从数据库中提取标签作为JSON,
这是我的struts操作
public String execute(){
Gson gson = new Gson();
String tagsAsJson = gson.toJson(audioTaggingService.findTagsByName(q));
System.out.println(tagsAsJson);
return "success";
}更新:
tagsAsJson已经是JSON格式了,我只想返回它,而不是整个类操作本身。
它返回如下所示的内容
这是我想要返回给用户的数据
[{"id":2,"name":"Dubstep","description":"Dub wob wob"},{"id":3,"name":"BoysIIMen","description":"A 1990s Boy Band"},{"id":4,"name":"Sylenth1","description":"A VST Plugin for FLStudio "}]如何将tagsAsJson作为r JSON响应返回?因为客户端代码将使用JSON响应。
发布于 2013-09-03 19:39:52
使用Struts "JSON Plugin"。
非常简单,三个步骤:
只需将其包含在maven项目中,如下所示
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>${version.struts2}</version>
</dependency>将想要返回的字段声明为JSON字符串,就像操作的字段一样,提供getter和setter。
public class Struts2Action extends ActionSupport {
private String jsonString;
public String execute() {
Gson gson = new Gson();
jsonString = gson.toJson(audioTaggingService.findTagsByName(q));
return "success";
}
public String getJsonString() {
return jsonString;
}
public void setJsonString(String jsonString) {
this.jsonString = jsonString;
}
}最后,将以下代码放入您的XML:
<action name="someJsonAction" class="com.something.Struts2Action">
<result type="json">
<param name="noCache">true</param>
<param name="excludeNullProperties">true</param>
<param name="root">jsonString</param>
</result>
</action>请注意<param name="root">jsonString</param>。这段xml告诉Struts2,这个属性应该被视为JSON序列化的根。因此,只有命名的属性(以及下面的属性,如果它是一个map或其他任何属性)才会在JSON响应中返回。
感谢JSON插件,内容类型将是正确的。
"JSON Plugin“文档在这里:http://struts.apache.org/release/2.3.x/docs/json-plugin.html
发布于 2013-09-03 20:18:33
尝试使用响应的PrintWriter。
Java
public String execute()
{
Gson gson = new Gson();
String jsonString = gson.toJson(audioTaggingService.findTagsByName(q));
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("application/json");
response.getWriter().write(jsonString );
return null;
}发布于 2013-01-30 16:24:17
在Action类中放入下面的代码。
public class Struts2Action extends ActionSupport
{
public String jsonString="";
public String execute()
{
Gson gson = new Gson();
jsonString = gson.toJson(audioTaggingService.findTagsByName(q));
System.out.println(jsonString);
return "success";
}
}在JSP中放入下面的代码
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<title>Struts Rais</title>
<s:property value="jsonString"/><br />这将打印JSON数据,如果您想操作JSON数据,则在var <s:set>标记中对数据进行分类,并在整个页面中访问变量。
https://stackoverflow.com/questions/14599073
复制相似问题