Pregunta

DWR maneja listas de primitivas bastante sencillas. No pude encontrar si la matriz de objetos devueltos por una llamada al método DWR representa un objeto JSON. ¿Alguna pista? ¿O tengo que devolver una cadena JSON que representa la matriz de objetos al navegador?

¿Fue útil?

Solución

Esta respuesta llega un poco tarde, pero aquí va :)

Buenas noticias: DWR también maneja matrices y colecciones Java de una manera realmente directa. Simplemente devuélvalos y en el lado del cliente obtendrá objetos de matriz de JavaScript. (En casos típicos como primitivas o cadenas dentro de su matriz o colección, eso es. Si el contenido es algo más exótico, es posible que necesite definir convertidores; más abajo).

Aquí hay una cita de documentación DWR (énfasis mío):

  

Por defecto, todos los siguientes son   convertido para ti sin más   declaración:

     
      
  • Todos los tipos primitivos, boolean, int, double, etc.
  •   
  • Las versiones basadas en clases de estos booleanos, enteros, etc.
  •   
  • java.lang.String
  •   
  • java.util.Date y los 3 derivados de SQL
  •   
  • matrices de los anteriores
  •   
  • Colecciones (listas, conjuntos, mapas, iteradores, etc.) de lo anterior
  •   
  • objetos DOM (como Elemento y Documento) de DOM, XOM, JDOM y DOM4J
  •   

Por lo tanto, definitivamente no necesitará cadenas JSON para estos (aunque puede ser una buena opción para estructuras de datos más complicadas).

En realidad, puede devolver muchos más tipos de objetos sin hacer mucho trabajo manual porque DWR viene con " convertidores " para muchos usos típicos Por ejemplo, para hacer que su "bean" personalizado los objetos Java de estilo funcionan en JS del lado del cliente, todo lo que necesita decir en dwr.xml es que desea utilizar conversor de frijoles :

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

Incluso si su método devuelve una Lista (o matriz) de esos objetos bean ...

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

... la configuración anterior es suficiente, lo cual es bastante agradable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top