2016-09-09 3 views
0

Ich habe ein Stück Code gefunden, um AngularJS mit Java Servlet zu verwenden.AngularJS und Java Servlet funktioniert nicht

Das Problem ist, dass, wenn ich die Anwendung ausführen, sagen Sie mir, dass die 'AtpPlayers' Seite es nicht existiert und natürlich füllt es nicht meine Tabelle.

Ich habe versucht, in JBOSS-Server und json-einfach-1.1.1.jar Bibliothek.

Was ist falsch?

Das Servlet ist hier:

import java.io.IOException; 
import java.io.PrintWriter; 

import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

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

    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     response.setContentType("application/json;charset=UTF-8"); 
     try { 
      PrintWriter out = response.getWriter(); 
      out.println("[{\"name\": \"Nadal, Rafael (ESP)\", \"email\": \"[email protected]\", \"rank\": \"1\"}," 
       + "{\"name\": \"Djokovic, Novak (SRB)\", \"email\": \"[email protected]\", \"rank\": \"2\"}," 
       + "{\"name\": \"Federer, Roger (SUI)\", \"email\": \"[email protected]\", \"rank\": \"3\"}," 
       + "{\"name\": \"Wawrinka, Stan (SUI)\", \"email\": \"[email protected]\", \"rank\": \"4\"}," 
       + "{\"name\": \"Ferrer, David (ESP)\", \"email\": \"[email protected]\", \"rank\": \"5\"}]"); 
    } catch (Exception e) { 
     System.out.println(e); 
    } 
    } 
} 

Der HTML & JS-Code ist, dass:

$http.get('http://localhost:8080/AngularGET/AtpPlayers').then(function (data, status, headers, config) { 
    $scope.atp = data; 
    alert('OK'); 
}, function (data, status, headers, config) { 
    alert('NU'); 
}); 

mit Fassung:

<!DOCTYPE html> 
<html> 
    <head>  
     <title></title> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
     <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js"></script>  
    </head> 
    <body ng-app="ATP_PLAYERS"> 
     <div ng-controller="atpController"> 
      <h5>Loading ATP players from a Servlet</h5> 
      <table> 
       <thead> 
        <tr> 
         <th>Rank</th> 
         <th>Name</th> 
         <th>E-mail</th> 
        </tr> 
       </thead> 
       <tbody> 
        <tr ng-repeat="item in atp"> 
         <td>{{item.rank}}</td>    
         <td>{{item.name}}</td> 
         <td>{{item.email}}</td> 
        </tr> 
       </tbody> 
      </table> 
     </div>  

     <script language="javascript" type="text/javascript"> 
      angular.module('ATP_PLAYERS', []) 
      .controller('atpController', function ($scope, $http) { 
       $http.get('http://localhost:8080/AngularGET/AtpPlayers').then(function (data, status, headers, config) { 
       $scope.atp = data; 
       alert('OK'); 
      }, function (data, status, headers, config) { 
       alert('NU'); 
       }); 
     }); 
     </script> 
    </body> 
</html> 
+0

Hat das Server erreicht? Was bekommst du, wenn du die URL im Browser drückst? –

+0

Jetzt der Firebug es sagen mir "200 OK" und ein Fehler Fehler: "JSON.parse: erwartete Eigenschaft Name oder '}' Zeile 1 Spalte 3 der JSON-Daten oc @ http: //ajax.googleapis.com /ajax/libs/angularjs/1.3.8/angular.min.js:14:151 .... " – Doro

+0

Und die Antwort lautet: [{'name': 'Nadal, Rafael (ESP)', 'email' : '[email protected]', 'rank': '1'}, {'name': 'Djokovic, Novak (SRB)', 'E-Mail': '[email protected]', 'Rang': ' 2 '}, {' Name ':' Federer, Roger (SUI) ',' E-Mail ':' federerroger @ gmail.com ',' Rang ':' 3 '}, {' name ':' Wawrinka, Stan (SUI) ',' E-Mail ':' [email protected] ',' Rang ' :' 4 '}, {' Name ':' Ferrer, David (ESP) ',' E-Mail ':'[email protected] ',' rank ':' 5 '}] – Doro

Antwort

0

ich das Problem gefunden

$http.get('http://localhost:8080/AngularGET/AtpPlayers').then(function (response) { 
    $scope.atp = response.data; 
    alert('OK'); 
}, function (response) { 
    alert('NU'); 
}); 

Ich weiß nicht, warum der Typ, der den ursprünglichen Code schrieb, "Funktion (Daten, Status, Header, Konfig)" eingegeben wurde ...

Verwandte Themen