Quiero acceder a un atributo de modelo en Javascript. Yo uso el siguiente código:Cómo acceder al atributo de modelo en Javascript
model.addAttribute("data", responseDTO);
Mi clase DTO:
public class ResponseDTO {
private List<ObjectError> errors;
private Boolean actionPassed;
private String dataRequestName;
// and setter getter for all fields
}
intenté acceder al DTO usando:
var data = "${data}";
Pero es que me da una representación de cadena de responseDTO lugar, es decir, [email protected]
. Puedo acceder con éxito un campo dentro de la DTO usando:
var data = "${data.actionPassed}";
Pero esto no está funcionando para el atributo errors
dentro de la DTO, ya que es un List
de ObjectError
. ¿Cómo puedo obtener el objeto completo responseDTO
en Javascript?
Gracias!
EDIT:
Inicialmente estaba usando jquery.post
$.post('ajax/test.html', function(data) {
// Here I was able to retrieve every attribute even list of ObjectError.
});
Ahora quiero quitar Ajax y quieren convertirlo en el enfoque no-Ajax (debido a algunas razones inevitables) . Así que estoy haciendo un envío de formulario normal y quiero cargar el mismo formulario de nuevo y tratando de cargar el atributo de modelo data
en Javascript para que pueda mantener el resto del código tal como está.
Me preguntaba si se puede lograr en Javascript, ya que es factible mediante la publicación de Jquery?
EDIT 2:
Probé (Gracias @Grant de sugerencias)
JSONObject jsonObject =JSONObject.fromObject(responseDTO);
String jsonString = jsonObject.toString();
model.addAttribute("data",jsonString);
y en Javascript
var data = eval('('+ ${dataJson} +')'); // Getting error on this line
alert(data.actionPassed);
Pero conseguir ningún error y de alerta se Se muestra
Error:
¿Dónde desea acceder al objeto, dentro de un archivo JSP o en el lado del cliente después de que el DTO sea devuelto por alguna llamada AJAX? – Ralph
Antes de continuar, deténgase y considere: su modelo reside en el ** servidor **, el javascript ocurre en el ** cliente **. Ahora, ¿qué es lo que quieres lograr? – pap
@Ralph: No, quiero eliminar la pieza Ajax. Por favor revisa mi edición para más detalles. – xyz