最近は、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の情報が取得できなくて起動できません。 <!DOCTYPE struts PUBLIC<?xml version="1.0" encoding="UTF-8" ?> "-//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.テスト
|