「Struts2」struts2-json-pluginでjsonデータを受け取る方法
操作方法
1.struts2-json-pluginとstruts2-convention-pluginのjarをインポート(pom.xml)
mavenでプロジェクト管理をしている場合は、pomに依存関係を追加します。
<dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-json-plugin</artifactId> <version>${struts2.version}</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-convention-plugin</artifactId> <version>${struts2.version}</version> </dependency>
2.Actionクラスにアノテーション定義
JSONでレスポンスを返したいActionに@ParentPackageアノテーションで"struts-default"から"json-default"に変更します。
@ParentPackage("json-default") @Result(name = "error", type = "json")
3 @JSONアノテーションの定義
@JSON(serialize=false) @JSON(name=”newName”) @JSON(format =”yyyy-MM-dd’T’HH:mm:ss”) @JSON(deserialize=true)
4.paramを設定します
rootパラメータ
@Action(value="UT1002",results={ @Result(name="STU1002" type="json",params={"root","model.jsonResult"})})
excludeNullPropertiesパラメータ
@Action(value="UT1002",results={ @Result(name="STU1002" type="json",params={“excludeNullProperties","true"})})
ignoreHierarchyパラメータ
@Action(value="UT1002",results={ @Result(name="STU1002" type="json",params={"ignoreHierarchy","true"})})
includeProperties パラメータ
@Action(value="UT1002",results={ @Result(name="STU1002" type="json",params={"includeProperties","msg,user\\.username,list\\[1\\]\\.password,map.*","prefix","true"})})
excludeProperties パラメータ
@Action(value="UT1002",results={ @Result(name="STU1002" type="json",params={"excludeProperties","msg,user\\.username,list\\[1\\]\\.password,map.*","prefix","true")})