Struts2使用註解方式返回Json數據

Struts2使用註解方式返回Json數據

最近項目中需要使用struts2的註解方式實現Json數據的返回
講道理,網上一大堆解決方案,試了半天沒有一個完全解決我的問題,因此集百家之長寫了這篇博客,希望對大家有用。

1.引入struts2-json-plugin和struts2-convention-plugin的jar包

<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類註解

1.使用註解@ParentPackage("json-default")註解Action類

2.設置result的type爲json

@Result(name = "error", type = "json")

3 @JSON註解

a.默認情況下以get方法會被序列化,

b.可使用註解 @JSON(serialize=false)關閉某個get方法的序列化。

c.如果在屬性get方法上面加 @JSON(name=”newName”),則返回的json數據中key是指定的新名稱。

d. @JSON(format =”yyyy-MM-dd’T’HH:mm:ss”)設置用於格式化json數據中的日期。

e. @JSON(deserialize=true)設置是否反序列化該屬性。


4.param參數設置

4.1.root參數:返回單個數據

使用方法::
@Action(value="xxxx",results={ @Result(name=“xxx”type="json",params={"root","要返回的數據名稱"})})

4.2. excludeNullProperties 參數:過濾屬性值爲null的數據

使用方法::
@Action(value="xxxx",results={ @Result(name=“xxx”type="json",params={“excludeNullProperties","true"})})

4.3. ignoreHierarchy 參數:表示是否忽略等級。ignoreHierarchy值默認爲true,設置爲false後會將父類和子類的屬性一起輸出。

使用方法::
@Action(value="xxxx",results={ @Result(name=“xxx”type="json",params={"ignoreHierarchy","true"})})

4.4. includeProperties 參數:輸出結果中需要包含的屬性值,這裏正則表達式和屬性名匹配,可以用“,”分割多個正則表達式。

使用方法::
@Action(value="xxxx",results={ @Result(name=“xxx”type="json",params={"includeProperties","msg,user\\.username,list\\[1\\]\\.password,map.*","prefix","true"})})

4.5. excludeProperties 參數:輸出結果需要排除的屬性值,用法與includeProperties相同。

使用方法::
@Action(value="xxxx",results={ @Result(name=“xxx”type="json",params={"excludeProperties","msg,user\\.username,list\\[1\\]\\.password,map.*","prefix","true")})
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章