Håndtere java-objekt i javascript


Jeg bruger Ajax i min JavaScript, og det sætter et array af objekter af følgende klasse i et svar:

public class RetrieveTempSecVersions {

    private String templateName;
    private int[] versionNumber;

    public String getTemplateName() {
        return templateName;
    }

    public void setTemplateName(String templateName) {
        this.templateName = templateName;
    }

    public int[] getVersionNumber() {
        return versionNumber;
    }

    public void setVersionNumber(int[] i) {
        this.versionNumber = i;
    }
}

ved hjælp af :

aoRes.setContentType("text/xml");
aoRes.setHeader("Cache-Control", "no-cache");
aoRes.getWriter().write(template[]);

Nu vil jeg læse alle elementerne fra skabelonarrayet og dets detaljer ind i min JavaScript.

Kan nogen hjælpe mig med, hvordan man gør det?

Svar #1

Har du overvejet at bruge Google Web Toolkit? Med GWT har du en række muligheder for at sende objekter mellem klient og server, herunder GWT RPC, RequestFactory og JSON.

Svar #2

Du skal omdanne dit array af Java-objekter til noget, som JavaScript forstår. Der er to oplagte valg: XML (AJAX betyder Asynchronous Javascript And XML), eller JSON. JSON er sandsynligvis lettere og mere letvægts.

Alle AJAX JavaScript-biblioteker (JQuery osv.) har god støtte for JSON. Se http://api.jquery.com/jQuery.getJSON/ for eksempel.

Der er også flere Java-API'er til at transformere Java-objekter til JSON (se for eksempel på GSON).

Du bliver nødt til at ændre indholdstypen af svaret: det er ikke text/html, men application/json, hvis du bruger JSON.