struts2 json的應用配置

2021-08-31 15:20:28 字數 2459 閱讀 9546

1.

注:struts2的json外掛程式有兩個版本0.32和0.34,我用的struts2的版本是2.0.11,在加入0.34版本json外掛程式時啟動發生異常,提示找不到相關方法,後來就換成了低版本的0.32一切ok,仔細檢視文件後發現struts2的2.0.*版本的對應外掛程式的0.32版本,struts2.1.*版本對應0.34版本 2.

將struts.xml裡面的

<

package 

name

="default"

extends

="struts-default">

改為 <

package 

name

="default"

extends

="json-default">

4.action中的配置

<

action 

name

="testaction"

class

="com.json.action.testaction"

method

="testmethod">

<

interceptor-ref 

name

="json"

/>

<

result 

type

="json"

/>

action

>

注:根據需要選擇interceptor和result配置

5. 你會發現前台返回的json字串,是把action中的所有屬性全部轉化為json字串返回給瀏覽器了,但是我有時候需要根據實際情況返回部分結果,如何對json的結果進行定製輸出呢?result提供了一些引數替你解決這個問題

5.1. root引數:從返回結果中根據ognl表示式取出你需要輸出的結果 如:

action類

public

class

baseaction 

extends

actionsupport 

implements

public class baseaction extends actionsupport implements 

bean類

public

class

person   

public class person

我們只要輸出person物件的name屬性值,配置如下

<

result 

type

="json">

<

param 

name

="root">

person.name

param

>

result

>

person.name

5.2. excludenullproperties 引數:表示是否去掉空值,預設值是false,如果設定為true會自動將為空的值過濾,只輸出不為空的值。

<

result 

type

="json">

<

param 

name

="excludenullproperties">

true

param

>

result

>

true

5.3. ignorehierarchy 引數:表示是否忽略等級,也就是繼承關係,比如:testaction繼承於baseaction,那麼testaction中返回的json字串預設是不會包含父類baseaction的屬性值,ignorehierarchy值預設為true,設定為false後會將父類和子類的屬性一起返回。

<

result 

type

="json">

<

param 

name

="ignorehierarchy">

false

param

>

result

>

false

5.4. includeproperties 引數:輸出結果中需要包含的屬性值,這裡正規表示式和屬性名匹配,可以用「,」分割填充多個正規表示式。

如:輸出person的所有屬性

<

result 

type

="json">

<

param 

name

="includeproperties">

person.*, person\.name

param

>

result

>

person.*, person\.name

5.5. excludeproperties 引數:輸出結果需要剔除的屬性值,也支援正規表示式匹配屬性名,可以用「,」分割填充多個正規表示式,類同4.4.

struts2 json傳遞物件

今天在用struts2 非同步請求從後台傳乙個物件到前台時遇到了乙個小小的問題,現在此作乙個標記,把主要的 貼上以作備忘。struts.xml systemcontactor username,systemcontactor cellphone,systemcontactor notesmail u...

超級令人鬱悶的struts2 JSON資料傳遞

今天超級鬱悶,struts2向前臺返回json資料時一直為空,最後才發現一直沒有寫get方法。action value templateupload results public string templateupload catch exception e return success resul...

Struts2 Json 獲取基類的屬性

使用struts2 json預設只能獲取當前類 action 的屬性,對於基類的屬性是遮蔽了的。例如 public abstract class baseacion extends actionsupport public class myaction extends baseaction meth...