首頁 > Java > java教程 > 如何為特定物件自訂Struts2 JSON外掛程式序列化?

如何為特定物件自訂Struts2 JSON外掛程式序列化?

Linda Hamilton
發布: 2024-12-14 03:37:14
原創
220 人瀏覽過

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;
    }
}
登入後複製
動作類別(PartAction.java):

<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>
登入後複製
Struts.xml:

var handledata = function(data) {
    $.each(data, function(index) {
        alert(data[index].col1);
        alert(data[index].col2);
    });
}
登入後複製
AJAX回呼函數:

以上是如何為特定物件自訂Struts2 JSON外掛程式序列化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板