Struts2 JSON 外掛程式通常將整個操作序列化為 JSON。但是,如果您只需要序列化特定對象,則可以使用 struts.xml 配置中的「root」屬性指定根對象。
在提供的範例中,發生錯誤是因為 JSON 外掛程式是嘗試序列化整個 Part 操作,其中包含 SearchResult 物件的清單。但是,jQuery 成功處理程序需要具有特定鍵的 JSON 對象,例如 col1 和 col2。
要解決此問題,您可以將行列表指定為struts.xml 檔案中的根物件:
<result type="json"> <param name="root">rows</param> </result>
這將指示插件僅序列化行列表,這是您想要的物件在jQuery 成功處理程序中存取。
在操作類別中,您可以為行列表建立getter 方法:
public List<MyRow> getRows() { return this.rows; }
To定義JSON 物件中的列後,您可以建立像MyRow 這樣的值對象,其中包含col1 和col2 屬性的getter 和setter。這允許您自訂序列化格式。
指定根物件後,可以更新jQuery 成功處理程序以使用$.each 函數存取資料:
var handledata = function(data) { $.each(data, function(index) { alert(data[index].col1); alert(data[index].col2); }); }
透過使用根對象,您可以控制序列化流程並確保您需要的資料在您的jQuery 成功中可用處理程序。
以上是如何使用 Struts2 JSON 外掛程式僅序列化特定物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!