Frage

DWR behandelt Listen von Primitiven ganz geradlinig. Ich konnte nicht finden, ob Array von Objekten durch einen DWR Methodenaufruf stellt ein JSON-Objekt zurückgegeben. Irgendwelche Hinweise? Oder muss ich eine JSON-String zurück, um die Array von Objekten zurück an den Browser darstellen?

War es hilfreich?

Lösung

Diese Antwort ist ein wenig spät, aber hier geht:)

Die gute Nachricht: DWR behandelt auch Java-Arrays und Kollektionen in einem wirklich geradlinig Weg. bringt sie einfach und auf Client-Seite werden Sie JavaScript Array-Objekte erhalten. (. In typischen Fällen wie Primitiven oder Strings in Ihrem Array oder Sammlung, das ist, wenn der Inhalt etwas exotischere ist, müssen Sie möglicherweise Wandler definieren;. Mehr unten)

Hier ist ein Zitat von DWR Dokumentation (Hervorhebung von mir):

  

In der Standardeinstellung alle folgenden sind   Sie konvertiert ohne weitere   Erklärung:

     
      
  • Alle primitiven Typen, boolean, int, double, etc.
  •   
  • Die Klasse basierte Versionen der diese Boolean, Integer, etc.
  •   
  • java.lang.String
  •   
  • java.util.Date und das 3 SQL-Derivate
  •   
  • Arrays der oben
  •   
  • Sammlungen (Listen, Sets, Karten, Iteratoren, usw.) der oben
  •   
  • DOM-Objekte (wie Element und Dokument) von DOM, XOM, JDOM und DOM4J
  •   

So Sie auf jeden Fall nicht JSON-Strings für diese müssen (obwohl das eine gute Option für kompliziertere Datenstrukturen sein kann).

Sie können tatsächlich viele weitere Arten von Objekten zurück, ohne viel manuelle Arbeit zu tun, weil DWR kommt mit „ Konverter “für viele typische Anwendungen. Zum Beispiel Ihres benutzerdefinierten „bean“ Stil Java-Objekte Arbeit in clientseitige JS zu machen, alles, was Sie in dwr.xml sagen müssen, ist, dass Sie die bean-Wandler :

<convert converter="bean" match="com.company.YourBean" />

Auch wenn die Methode eine Liste (oder Array) gibt diese Bean-Objekte ...

public static List<YourBean> getData(){ ... }

... die obige Konfiguration genügt, was sehr schön ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top