> Java > java지도 시간 > 특정 객체에 대해 Struts2 JSON 플러그인 직렬화를 사용자 정의하는 방법은 무엇입니까?

특정 객체에 대해 Struts2 JSON 플러그인 직렬화를 사용자 정의하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-14 03:37:14
원래의
219명이 탐색했습니다.

How to Customize Struts2 JSON Plugin Serialization for Specific Objects?

Struts2 JSON 플러그인 문제 해결

Struts2 JSON 플러그인 기능

Struts2 JSON 플러그인은 임시 속성과 그 속성을 제외하고 전체 작업을 JSON으로 직렬화하여 작동합니다. getter 없이.

루트를 사용하여 직렬화 사용자 정의 객체

특정 객체만 직렬화하려면 struts.xml의 "루트" 속성을 활용할 수 있습니다.

<result type="json">
    <param name="root">
        objectToBeSerialized
    </param>
</result>
로그인 후 복사

특정 사례에 대한 솔루션

주어진 데이터 구조 "[col1, col2]"로 표시되는 여러 행을 사용하면 다음을 생성할 수 있습니다.

  • 값 객체: col1 및 col2 필드가 있는 MyRow
  • "rows"라는 MyRow 목록이 있는 Action 클래스
  • "root"를 "rows"로 설정하도록 Struts.xml을 업데이트합니다

구현예

값 객체 (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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿