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中文网其他相关文章!