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.