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

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

Patricia Arquette
Patricia Arquette원래의
2024-12-10 10:21:16592검색

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.