【问题标题】:Accessing JSP variable from javascript [Angular JS]从 javascript [Angular JS] 访问 JSP 变量
【发布时间】:2017-07-07 02:45:25
【问题描述】:

我正在使用 Angular JS 和 JSP。我需要将会话属性变量从 JSP 检索到我的控制器。我的代码在下面

JSP

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

JS

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
   // i want to get the JSP variable here
});

【问题讨论】:

    标签: javascript java angularjs jsp session-variables


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      尝试(我从未尝试过 - 只是和想法......如果它有效,请发布):

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

      &lt;head&gt;&lt;/head&gt;或者body开头然后import jspVariableService in

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

      并在控制器中使用它:

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

      【讨论】:

        【解决方案3】:

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

        <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); 
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-10-03
          • 2014-01-11
          • 2012-05-05
          • 2013-09-30
          • 2015-06-08
          • 2017-06-21
          • 1970-01-01
          • 2020-02-14
          相关资源
          最近更新 更多