我有一个java web应用程序,在页面上导入了angular.js应用程序。调用页面时,我在java类中收集了一堆变量,并构建了一个包含它们的JSONObject实例。
JSONObject initData = new JSONObject();
initData.put("key1", "abc");
initData.put("test special chars", "$%{}<>'\"?");
request.setAttribute("initData", initData.toString());
我希望在java类中收集的变量可用于angular app,这就是我使用json对象的原因。在jsp中我有以下内容:
<div ng-app="myAngularApp" ng-init="initData=${initData}">
<div class="ng-view"></div>
</div>
<script src="angular/scripts/frameworks.js"></script>
<script src="angular/scripts/plugins.js"></script>
<script src="angular/scripts/myApp.js"></script>
<script type="text/javascript">angular.modulate.instantiateModules();</script>
${initData}
从java类打印出我的JSONObject的字符串值。但是,我似乎无法正确地逃避它。我尝试过一堆StringEscapeUtils方法,但没有运气。
将此信息输入ng-init的正确方法是什么?