Я хочу получить доступ к атрибуту модели в Javascript. Я использую следующий код:
model.addAttribute("data", responseDTO);
Мой класс DTO:
public class ResponseDTO {
private List<ObjectError> errors;
private Boolean actionPassed;
private String dataRequestName;
// and setter getter for all fields
}
Я пытался получить доступ к DTO, используя:
var data = "${data}";
Но вместо этого он выдает мне строковое представление responseDTO, т.е. com.req.dto.ResponseDTO@115f4ea
. Я могу успешно получить доступ к полю внутри DTO, используя:
var data = "${data.actionPassed}";
Но это не работает для атрибута errors
внутри DTO, так как это List
из ObjectError
. Как я могу получить полный объект responseDTO
в Javascript?
Спасибо!
EDIT :
Первоначально я использовал jquery.post
$.post('ajax/test.html', function(data) {
// Here I was able to retrieve every attribute even list of ObjectError.
});
Теперь я хочу убрать Ajax и хочу преобразовать его в неajax подход (из-за некоторых неизбежных причин). Итак, я делаю обычную отправку формы и хочу загрузить ту же форму снова и пытаюсь загрузить data
атрибут модели в Javascript, чтобы я мог оставить остальной код как есть.
Мне интересно, можно ли это сделать на Javascript, как это можно сделать с помощью Jquery post?
EDIT 2 :
Я попробовал (Спасибо @Grant за предложения)
JSONObject jsonObject =JSONObject.fromObject(responseDTO);
String jsonString = jsonObject.toString();
model.addAttribute("data",jsonString);
и в Javascript
var data = eval('('+ ${dataJson} +')'); // Getting error on this line
alert(data.actionPassed);
Но получаю ошибку и не отображается оповещение
.
Ошибка :