ナビゲーション

最近の更新履歴

JSON Plugin

最近は、Ajaxと連携させるために、WebシステムのレスポンスをJSONやXMLで出力する機能がほしいときがよくあります。
struts2には、JSON PluginとREST Pluginが存在していますが、まずはJSON Pluginを試してみます。
 
Action毎にstruts.xmlを設定して動かすサンプルはWebに転がっているので、ここでは可能な限りZeroConfigurationで動かせないかどうか試行錯誤します。
 
1.インストール
lib以下に、
struts2-json-plugin-2.1.8.1.jar
json-lib-2.1.jar
をコピーします。
 
WEB-INF/classes/struts.xmlを以下のように定義します。
以下の設定でWebアプリケーション起動時にconvention pliginが、jsonの設定を読み込んだ上でActionクラスを解析するようになります。これをしないと、Webアプリケーション起動時にActionクラスのアノテーション解析時にJsonPluginの情報が取得できなくて起動できません。


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <constant name="struts.convention.default.parent.package" value="json-default"/>
</struts>

2.Actionクラス作成

@Result(name="success", type="json", params={"enableSMD","true"})
public class PointsAction extends ActionSupport {
    public String smd() {
        return "success";
    }
    @SMDMethod
    public Boolean getStatus() {
        return Boolean.TRUE;
    }
}

 
3.テスト