2017-08-13 9 views
0

私はJava EEと角型JSの初心者です。ウェブサイトからコードを見つけました(http://www.simplecodestuffs.com/angularjs-interacting-with-java-servlet-using-json/) 私はEclipseで実装しようとしています。ここ旧AngularJSデモが動作しない

First Name: {{person.firstName}} 

Last Name: {{person.lastName}} 

は私のJSPである:ここ

<!DOCTYPE html> 

    <html> 
    <head> 
    <meta charset="ISO-8859-1"> 
    <title>AJAX with Servlets using AngularJS</title> 

    <script type="text/javascript" src="jas/angular.min.js"> </script> 
    <script> 
    var app = angular.module('myApp', []); 
    function MyController($scope, $http) { 

     $scope.getDataFromServer = function() { 
       $http({ 
         method:'GET', 
         url:'http://localhost:8080/Angular/AngularJsServlet' 
       }).success(function(data, status, headers, config) { 
         $scope.person = data; 
       }).error(function(data, status, headers, config) { 
         // called asynchronously if an error occurs 
         // or server returns response with an error status. 
       }); 

     }; 
    }; 

    </script> 
    </head> 
    <body> 
    <div ng-app="myApp"> 
      <div ng-controller="MyController"> 
       <button ng-click="getDataFromServer()"> Fetch data from server </button> 
       <p>First Name: {{person.firstName}}</p> 
       <p>Last Name: {{person.lastName}}</p> 
      </div> 
    </div> 
    </body> 

</html> 

は私のサーブレットです:

が、私はボタンをクリックしたときに出力を "サーバーからデータをフェッチするには、" 予想

出力として表示されますdoesnot

@WebServlet("/AngularJsServlet") 
public class AngularJsServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public AngularJsServlet() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
      PersonData personData = new PersonData(); 
      personData.setFirstName("Mohaideen"); 
      personData.setLastName("Jamil"); 

      String json = new Gson().toJson(personData); 
      response.setContentType("application/json"); 
      response.getWriter().write(json); 
    } 



    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
     //doGet(request, response); 
    } 

} 

答えて

0

3f2232b5$controllerは、ウィンドウ上のコントローラを検索しなくなります。コントローラのウィンドウを見るという古い動作は、もともと、サンプル、デモ、おもちゃアプリでの使用を意図していました。グローバルコントローラの機能を許可することで慣れが悪いことがわかったので、デフォルトでこの動作を無効にすることを決めました。

は、移行グローバル

— AngularJS Developer Guide - Migrating to V1.3としてそれらをさらすのではなく、モジュールを使用してコントローラを登録するには。カスタムコールバックメソッドは非推奨に起因してb54a39


$http年代 - .success().error()は - 削除されました。代わりに、標準の .then()/ .catch() promiseメソッドを使用できますが、メソッドのシグネチャと戻り値が異なることに注意してください。

$http(...) 
    .then(function onSuccess(response) { 
    // Handle success 
    var data = response.data; 
    var status = response.status; 
    var statusText = response.statusText; 
    var headers = response.headers; 
    var config = response.config; 
    ... 
    }).catch(function onError(response) { 
    // Handle error 
    var data = response.data; 
    var status = response.status; 
    var statusText = response.statusText; 
    var headers = response.headers; 
    var config = response.config; 
    ... 
    }); 

— AngularJS Developer Guide - Migrating to v1.6 - http

関連する問題