从javascript访问JSP变量[Angular JS]

时间:2017-02-17 14:20:36

标签: javascript java angularjs jsp session-variables

我正在使用角度JS和JSP。我需要从JSP中检索会话属性变量到我的控制器。我的代码在

之下

JSP

53543d31d3b73703d31363b

JS

<html lang="en" ng-app="myApp">
<body>
    <div data-ng-controller="myCtrl as vm" style="height:100%">
        <md-content layout="row" style="height:100%">
            <div class="widget">
                <h2>Header</h2>
                <div ui-view></div>
            </div>
        </md-content>
    </div>
    <script type="text/javascript" src="/root/script/script.js"></script>
  <%
  String policy = session.getAttribute("POLICY_CHANGE");
  %> 
 </body>
</html>

3 个答案:

答案 0 :(得分:0)

您可以使用表达式语言作为数据属性输出变量,如下所示:

<div data-my-variable="${myVariable}" id="myDiv"></div>

如果您使用的是Jquery,则可以使用attr函数:

var output = $("#myDiv").attr("data-my-variable");

答案 1 :(得分:0)

尝试(我从来没有尝试过这个 - 只是想法......如果有效,请发帖):

<script>
angular.module('jspVariablesService', [])
.value("valueName",${yourVariable});
</script>

<head></head>或正文的开头,然后在

中导入jspVariableService
var app = angular.module('myApp', ["jspVariableService"]); 

并在控制器中使用它:

app.controller('myCtrl', ["$scope", "valueName" function($scope,valueName) {
  //use your value!
});

答案 2 :(得分:0)

将会话值设置为隐藏输入。

<div data-ng-controller="myCtrl as vm">
     <input type="hidden" id="sessionData" />
</div>
<script>
     var data = '<%=request.getSession().getAttribute("POLICY_CHANGE")%>';
     document.getElementById("sessionData").value = data;
</script>

获得价值

app.controller('myCtrl', function($scope, $document) {
   $scope.data = $document[0].getElementById("sessionData").value;
   console.log($scope.data); 
});