今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.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に向けて勉強せねば・・・
Pages
Struts2 de Ajax
ラベル: Ajax, Java, Struts2
登録:
コメントの投稿 (Atom)
Design and Icons by N.Design Studio | Blogger Templates by Blog and Web
0 コメント:
コメントを投稿