2013年1月8日 星期二

Struts2 JSONResult 參數調校

JSONResult在它的struts-plugin.xml裡面的設定如下:
代碼:
<result-types>
    <result-type name="json" class="org.apache.struts2.json.JSONResult"/>
</result-types>
預設並沒有任何調整,這樣的狀況下會有兩個問題:
  1. 若model有繼承其它class,那些parent class attribute並不會被serialize。
  2. 若attribute為null,也會被serialize出去,造成無謂的網路傳輸量。
所以我們必須多加兩個設定:
  1. set ignoreHierarchy = false, default true.
  2. set excludeNullProperties = true, default false.
最終設定如下:
代碼:
<result-types>
    <result-type name="json" class="org.apache.struts2.json.JSONResult">
        <param name="ignoreHierarchy">false</param>
        <param name="excludeNullProperties">true</param>
    </result-type>
</result-types>
將它放到自己的struts.xml就可以了。