「Struts2」struts2-json-pluginでjsonデータを受け取る方法

2022年7月1日

操作方法

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")})

 

Struts2

Posted by arkgame