Java ng init的正确转义

Java ng init的正确转义,java,javascript,angularjs,jsp,escaping,Java,Javascript,Angularjs,Jsp,Escaping,我有一个java web应用程序,页面上导入了angular.js应用程序。调用页面时,我在java类中收集一组变量,并构建一个包含这些变量的JSONObject实例 JSONObject initData = new JSONObject(); initData.put("key1", "abc"); initData.put("test special chars", "$%{}<>'\"?"); request.setAttribute("initData", initData

我有一个java web应用程序,页面上导入了angular.js应用程序。调用页面时,我在java类中收集一组变量,并构建一个包含这些变量的JSONObject实例

JSONObject initData = new JSONObject();
initData.put("key1", "abc");
initData.put("test special chars", "$%{}<>'\"?");
request.setAttribute("initData", initData.toString());
JSONObject initData=new JSONObject();
initData.put(“键1”、“abc”);
put(“测试特殊字符“,“$%{}”\”?”;
setAttribute(“initData”,initData.toString());
我希望java类中收集的变量对angular应用程序可用,这就是我使用json对象的原因

<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>

angular.modulate.instantiationemodules();
${initData}
从java类打印出我的JSONObject的字符串值。但是,我似乎无法正确地转义它。我尝试了一系列StringEscapeUtils方法,但没有成功


将此信息输入ng init的正确方法是什么?

使用controller而不是ng init有什么想法吗?angular应用程序是从一个单独的项目导入的。那么是否可以使用controller?我编辑了一些说明,说明我的应用程序是一个外部资源,因此将${initData}在控制器中不是一个选项只需创建一个全局javascript变量并将数据作为其值打印出来。不需要ng init。一个简单的服务或控制器可以读取全局变量这是我的第一个策略。但我在开发过程中独立运行angular应用程序。如果我在jsp中定义了全局变量,那么我必须进行一次尝试捕获在这个变量不存在的情况下,我无法单独运行它。这似乎太愚蠢了,所以我想知道是否有一种“正确”的方法来实现这一点。但如果没有,我将回到那个策略。