14

私は現在、ユーザーがデータベースから JSON としてタグを取得できる Web アプリケーションを作成しています。

これが私のストラットアクションです

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 "}]

tagsAsJsonas ar JSON esponseを返すにはどうすればよいですか? その JSON 応答はクライアント側のコードで使用されるためです。

4

4 に答える 4

17

応答の PrintWriter を使用してみてください。

ジャワ

    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-09-03T12:18:33.477 に答える
2

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>タグのデータを cat し、ページ全体の変数にアクセスします。

于 2013-01-30T08:24:17.257 に答える