Domanda

DWR gestisce gli elenchi di primitivi piuttosto semplici. Non sono riuscito a trovare se la matrice di oggetti restituita da una chiamata del metodo DWR rappresenta un oggetto JSON. Qualche indizio? O devo restituire una stringa JSON che rappresenta l'array di oggetti al browser?

È stato utile?

Soluzione

Questa risposta è un po 'in ritardo, ma qui va :)

Buone notizie: DWR gestisce anche array e raccolte Java in modo molto diretto. Restituiscili e sul lato client otterrai oggetti Array JavaScript. (In casi tipici come primitive o stringhe all'interno dell'array o della raccolta, vale a dire. Se il contenuto è qualcosa di più esotico, potrebbe essere necessario definire i convertitori; più sotto.)

Ecco una citazione da Documentazione DWR (sottolineatura mia):

  

Per impostazione predefinita sono tutte le seguenti   convertito per te senza ulteriori   Dichiarazione:

     
      
  • Tutti i tipi primitivi, booleani, int, doppi, ecc.
  •   
  • Le versioni basate su Class di questi valori booleani, interi, ecc.
  •   
  • java.lang.String
  •   
  • java.util.Date e i 3 derivati ??SQL
  •   
  • array di quanto sopra
  •   
  • Raccolte (elenchi, set, mappe, iteratori, ecc.) di quanto sopra
  •   
  • Oggetti DOM (come Element e Document) da DOM, XOM, JDOM e DOM4J
  •   

Quindi sicuramente non avrai bisogno di stringhe JSON per queste (sebbene possa essere una buona opzione per strutture di dati più complicate).

Puoi effettivamente restituire molti altri tipi di oggetti senza fare molto lavoro manuale perché DWR viene fornito con " convertitori " per molti usi tipici. Ad esempio, per personalizzare il tuo bean " bean " gli oggetti Java stile funzionano nel JS sul lato client, tutto ciò che devi dire in dwr.xml è che vuoi usare convertitore di bean :

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

Anche se il tuo metodo restituisce un Elenco (o array) di quegli oggetti bean ...

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

... è sufficiente la configurazione sopra, il che è abbastanza carino.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top