「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>
<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>
<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")
@ParentPackage("json-default")
@Result(name = "error", type = "json")
@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)
@JSON(serialize=false)
@JSON(name=”newName”)
@JSON(format =”yyyy-MM-dd’T’HH:mm:ss”)
@JSON(deserialize=true)
@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"})})
@Action(value="UT1002",results={ @Result(name="STU1002" type="json",params={"root","model.jsonResult"})})
@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"})})
@Action(value="UT1002",results={ @Result(name="STU1002" type="json",params={“excludeNullProperties","true"})})
@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"})})
@Action(value="UT1002",results={ @Result(name="STU1002" type="json",params={"ignoreHierarchy","true"})})
@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"})})
@Action(value="UT1002",results={ @Result(name="STU1002" type="json",params={"includeProperties","msg,user\\.username,list\\[1\\]\\.password,map.*","prefix","true"})})
@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")})
@Action(value="UT1002",results={ @Result(name="STU1002" type="json",params={"excludeProperties","msg,user\\.username,list\\[1\\]\\.password,map.*","prefix","true")})
@Action(value="UT1002",results={ @Result(name="STU1002" type="json",params={"excludeProperties","msg,user\\.username,list\\[1\\]\\.password,map.*","prefix","true")})