Я хочу получить доступ к атрибуту model в 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 вместо i.e [email protected]
. Я могу успешно получить доступ к полю внутри DTO, используя:
var data = "${data.actionPassed}";
Но это не работает для атрибута errors
внутри DTO, так как это List
of 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?
ИЗМЕНИТЬ 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);
Но появляется ошибка и не отображается предупреждение.
Ошибка: