Struts2 de Ajax

今Struts2とAjaxについて勉強してます。
備忘録兼復習の意味も込めて投稿。

今回はStruts2のアクションからJSON形式で記述された文字列を返却する方法について。
ちなみにStruts2.1.8を使ってるので、Zero Configrationで話を進めます。

Struts2でAjaxを実装する場合、XMLHttpRequestで指定するURLは基本的に呼びたいActionのURLを呼べばいい(当たり前ですけど)
ここで困るのが、Struts2のアクションクラスは基本的に"success"等の実行結果の判定の文字列しか返却しない。
じゃあどうするか。
ここで活躍するのが、@Resultアノテーションさん
以下サンプルコード
@Action(value = "/hogeAction", results = { @Result(name = "success", type="json", params="{"root","options") })
public String hogeAction() throws Exception {
return "success";
}

public List getOptions(){
List options = new ArrayList();
options.add("犬");
options.add("猫");
options.add("鳥");
return options;
}

@Resultの中でtype="json"を指定してやり、params={"root","options"}を宣言することで、paramsの第二引数の名前を持ったゲッター(この場合getOptions())を呼んで、その結果をjson形式に記述して返却してくれる。
この場合ではList形式で返却しているがMap形式による返却も可能。

そんな感じで色々悩んだけれども、ソース上だと結構簡単なお話でした。


諸々の前設定については参考URL見てね。


■参考URL
Convention Plugin(公式ドキュメント)
[ 2310 ] [Struts2] AJAXタグ : autocompleter と JSONプラグイン
JSON Plugin (ノウハウ共有サイト!)


/*雑記*/
サンプルコード見づらくてサーセン・・・その内勉強します・・・
@alpha_pzさんいつも助言ありがとうございます!サイト共々お世話になってます!
今週末のTOEICに向けて勉強せねば・・・

0 コメント:

コメントを投稿