Я хочу получить доступ к атрибуту модели в 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?
Спасибо!
РЕДАКТИРОВАТЬ:
Первоначально я использовал 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?
РЕДАКТИРОВАТЬ 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);
Но появляется сообщение об ошибке и предупреждение не отображается
Ошибка: