首页 >Java >java教程 >如何为特定对象定制Struts2 JSON插件序列化?

如何为特定对象定制Struts2 JSON插件序列化?

Linda Hamilton
Linda Hamilton原创
2024-12-14 03:37:14224浏览

How to Customize Struts2 JSON Plugin Serialization for Specific Objects?

Struts2 JSON 插件故障排除

Struts2 JSON 插件功能

Struts2 JSON 插件通过将整个操作序列化为 JSON 来运行,不包括瞬态属性和那些没有吸气剂。

使用 Root 自定义序列化对象

要仅序列化特定对象,可以利用struts.xml中的“root”属性:

<result type="json">
    <param name="root">
        objectToBeSerialized
    </param>
</result>

特定案例的解决方案

给定数据结构将多行表示为“[col1, col2]”,您可以创建:

  • 值对象:带有字段 col1 和 col2 的 MyRow
  • 一个包含名为“rows”的 MyRow 列表的 Action 类
  • 更新 Struts.xml 以将“root”设置为“rows”

示例实现

值对象(MyRow.java):

public class MyRow implements Serializable {
    private String col1;
    private String col2;

    // Getters and setters omitted for brevity
}

动作类 (PartAction.java):

public class PartAction implements Serializable {
    private List<MyRow> rows;

    public List<MyRow> getRows() { return rows; }

    public String finder() {
        rows = new ArrayList<>();
        // Loop through search results and populate rows
        return Action.SUCCESS;
    }
}

Struts.xml:

<package name="default" namespace="/ajax" extends="json-default">
    <action name="finder" class="action.Part" method="finder">
        <result type="json">
            <param name="root">rows</param>
        </result>
    </action>
</package>

AJAX回调函数:

var handledata = function(data) {
    $.each(data, function(index) {
        alert(data[index].col1);
        alert(data[index].col2);
    });
}

以上是如何为特定对象定制Struts2 JSON插件序列化?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn