> Java > java지도 시간 > Struts2 JSON 플러그인은 AJAX 호출에 대한 데이터 구조를 어떻게 직렬화합니까?

Struts2 JSON 플러그인은 AJAX 호출에 대한 데이터 구조를 어떻게 직렬화합니까?

Patricia Arquette
풀어 주다: 2024-12-10 10:21:16
원래의
589명이 탐색했습니다.

How Does the Struts2 JSON Plugin Serialize Data Structures for AJAX Calls?

Struts2-JSON 플러그인: 기능 이해>

Struts2 JSON 플러그인에는 고유한 작동 방식이 있습니다. JSON으로의 작업 직렬화를 처리하지만 특정 요소에 대해서만 처리합니다:

  • 비일시적 속성
  • getter가 있는 속성

원하는 경우 특정 객체만 직렬화하는 경우 플러그인은 "root" 속성이라는 솔루션을 제공합니다. 이 속성을 사용하면 OGNL 표현식을 사용하여 직렬화할 루트 개체를 지정할 수 있습니다.

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

Action 클래스에는 다음이 포함되어야 합니다.

private CustomObject objectToBeSerialized;

public CustomObject getObjectToBeSerialized() {
    return this.objectToBeSerialized;
}
로그인 후 복사

CustomObject는 다양한 데이터 유형을 나타낼 수 있습니다.

이 방법을 활용하면 평소처럼 SUCCESS와 ERROR를 반환할 수 있습니다. 프레임워크 규칙을 손상시키지 않고 AJAX Struts2 작업을 수행합니다. 또한 AJAX jQuery 호출의 콜백 함수에서 직접 직렬화된 JSON 객체에 액세스할 수 있습니다.

시나리오 주소 지정

데이터 구조가 다음 패턴을 따른다고 가정합니다.

row1 [col1, col2], 
row2 [col1, col2], 
rowN [col1, col2]
로그인 후 복사

다음을 사용할 수 있습니다. 접근 방식:

1. 사용자 정의 개체 목록을 만듭니다

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

    // Getters
}
로그인 후 복사

2. Action Class

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

    // Getter
    public  List<MyRow> getRows() { 
        return this.rows; 
    } 

    public String finder() {
        rows = new ArrayList<MyRow>();

        // Populate the list with data
    }
} 
로그인 후 복사

3을 수정합니다. Struts.xml

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

4을 조정합니다. AJAX 콜백 함수

var handledata = function(data) {
    $.each(data, function(index) {
        alert(data[index].col1);
        alert(data[index].col2);
    });     
}
로그인 후 복사

이 접근 방식을 사용하면 원하는 데이터 구조를 직렬화하여 AJAX 콜백 함수 내에서 액세스할 수 있습니다.

위 내용은 Struts2 JSON 플러그인은 AJAX 호출에 대한 데이터 구조를 어떻게 직렬화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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