我想在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}";
但是对于DTO中的errors
属性,由于它是ObjectError
的List
,所以这种做法不起作用。我该如何在JavaScript中获取完整的responseDTO
对象?
谢谢!
编辑:
最初我使用的是jquery.post
$.post('ajax/test.html', function(data) {
// Here I was able to retrieve every attribute even list of ObjectError.
});
现在我想移除Ajax并将其转换为非Ajax方法(因为有些不可避免的原因)。所以我正在执行普通表单提交,想要重新加载相同的表单,并尝试在Javascript中加载"data"模型属性,以便我可以保持其余代码不变。我想知道是否可以在Javascript中实现它,因为使用Jquery post是可行的吗?
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);
但是出现错误,而且没有弹出警告框
错误信息: