Question

DWR gère les listes de primitives assez simplement. Je n'ai pas pu déterminer si un tableau d'objets renvoyé par un appel de méthode DWR représentait un objet JSON. Des indices? Ou dois-je renvoyer une chaîne JSON représentant le tableau d'objets au navigateur?

Était-ce utile?

La solution

Cette réponse est un peu tardive, mais voici:)

Bonne nouvelle: DWR gère également les baies et collections Java de manière très simple. Il suffit de les retourner et du côté client, vous obtiendrez des objets JavaScript Array. (Dans des cas typiques comme des primitives ou des chaînes dans votre tableau ou votre collection, c'est-à-dire. Si le contenu est quelque chose de plus exotique, vous devrez peut-être définir des convertisseurs; voir ci-dessous.)

Voici une citation de la documentation DWR (non souligné dans l'original):

  

Par défaut, tous les éléments suivants sont   converti pour vous sans plus   déclaration:

     
      
  • Tous les types primitifs, boolean, int, double, etc.
  •   
  • Les versions basées sur les classes de ces booléens, entiers, etc.
  •   
  • java.lang.String
  •   
  • java.util.Date et les 3 dérivés SQL
  •   
  • tableaux de ce qui précède
  •   
  • Collections (listes, ensembles, cartes, itérateurs, etc.) ci-dessus
  •   
  • objets DOM (comme Element et Document) de DOM, XOM, JDOM et DOM4J
  •   

Vous n'aurez donc certainement pas besoin de chaînes JSON (bien que cela puisse être une bonne option pour les structures de données plus complexes).

Vous pouvez en réalité renvoyer beaucoup plus de types d'objets sans effectuer beaucoup de travail manuel, car DWR est livré avec "a convertisseurs " pour beaucoup d'utilisations typiques. Par exemple, pour personnaliser votre " haricot " Les objets Java de style fonctionnent dans les JS côté client. Tout ce que vous avez à dire dans dwr.xml est que vous voulez utiliser le convertisseur de beans :

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

Même si votre méthode retourne une liste (ou un tableau) de ces objets bean ...

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

... la configuration ci-dessus suffit, ce qui est très joli.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top