angular と spring を使用して、単純な http セッションでユーザー認証を実装しようとしています。
(index.jsp
私のホームページ)では、ang-view
が使われています。
しかし、はURL$routeProvider
からテンプレートを見つけることができないため (これがエラーの原因だと思います)、ページのみがレンダリングされ、レンダリングされず、エラーも発生しています。
エラーと関連コードは、フォルダー構造のスナップショットと共に以下に添付されています。templateUrl
/login
index.jsp
ng-view
私の限られた知識によると、エラーエラースニペットtemplateUrl
を引き起こしているのは、テンプレートを参照している方法です
Error: [$injector:unpr] Unknown provider: $templateRequestProvider <- $templateRequest <- $route <- ngViewDirective
index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html ng-app="PMApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>AUTH</title>
<script data-require="angular.js@*" data-semver="1.2.13"
src="http://code.angularjs.org/1.2.13/angular.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.3/angular-route.js"> </script>
<script type="text/javascript" src="<c:url value="/resources/js/app.js" />"></script>
<script type="text/javascript" src="<c:url value="/resources/js/LoginController.js" />"></script>
<script type="text/javascript" src="<c:url value="/resources/js/MainController.js" />"></script>
</head>
<body>
<h2>Hello World!Just trying the AUTHENTICATION . . .</h2>
<div ng-view></div>
</body>
</html>
app.js
var PMApp = {};
var App = angular.module('PMApp', ['ngRoute']);
App.config(['$routeProvider', function($routeProvider) {
console.log("in routeprovider");
$routeProvider.when('/login', {
templateUrl: '/resources/views/loginLayout.html',
controller: LoginController
});
$routeProvider.when('/main', {
templateUrl: 'resources/views/mainLayout.html',
controller: MainController
});
$routeProvider.otherwise({redirectTo: '/login'});
}]);
App.run(function($rootScope, $location) {
// register listener to watch route changes
$rootScope.$on("$routeChangeStart", function(event, next, current) {
console.log("Routechanged sessionId="+$rootScope.SessionId);
if ($rootScope.SessionId == '' || $rootScope.SessionId == null) {
// no logged user, we should be going to #login
if (next.templateUrl == "resources/views/loginLayout.html") {
// already going to #login, no redirect needed
} else {
// not going to #login, we should redirect now
$location.path("/login");
}
}
});
});
必要に応じて詳細を尋ねてください。前もって感謝します。