我正在研究springmvc和angular应用程序。当发生一些异常时,我需要转发到错误页面,但是下面的场景不是转发到错误页面而是重定向到页面但是页面是空白的,当检查浏览器控制台时,下面是提到的例外:< / p>
Failed to load resource: the server responded with a status of 404 () :8080/undefined
我想将其转发到错误页面,而不是返回页面并显示空白页面。 我的异常中有一个异常处理程序类,发生的任何异常都是调用处理程序类,它处理并转发到错误页面。
js code:
myApp.controller('myController', function ($rootScope, $scope, $sce, MyService, $window) {
$scope.getData = function () {
$scope.pdfName = {};
$scope.html = '';
MyService.getMyData($scope.id1).then(
function (response) {
$scope.myResponse = response;
//check for error
if ($scope.myResponse .error) {
$rootScope.showError(500, $scope.myResponse .error);
} else {
if(window.navigator.msSaveOrOpenBlob){
$scope.IEBrowser = true;
//logic here
} else {
$scope.IEBrowser = false;
//some logic here}
}},
function (errResponse) {
alert("in error ds");
$rootScope.showError(500, errResponse);
$scope.pdfName = {};
});
}
$scope.getMyData();
});
//异常处理程序类
@ControllerAdvice
public class MyExceptionControllerAdvice {
@ExceptionHandler(Exception.class)
public @ResponseBody ErrorInfoBean exception(Exception e) {
System.out.println("In ExceptionControllerAdvice!---- " +e.getMessage());
ErrorInfoBean error = new ErrorInfoBean();
error.setStatus(500);
error.setError(e.getMessage());
return error;
}
}
当我的spring控制器发生任何异常时,它会触及上面的MyExceptionControllerAdvice类但不返回错误页面。 我尝试在上面的MyExceptionControllerAdvice中将500更改为404,但它没有用。
web.xml中: 我配置如下:
<error-page>
<error-code>500</error-code>
<location>/views/error.jsp</location>
</error-page>
<error-page>
<exception-type>404</exception-type>
<location>/views/error.jsp</location>
</error-page>
答案 0 :(得分:0)
@RequestMapping
注释。
@RequestMapping("/myExceptionClass")
public class
@RequestMapping(value = "/exceptio", method = RequestMethod.POST, produces = "application/json", consumes = "application/json")
public RestResponse save(){
}
所以url将是:localhost:8080 / projectname / myExceptionClass / exception
答案 1 :(得分:0)
可能是你可以使用http拦截器来处理它。
$httpProvider.interceptors.push(function($q, $cookies) {
return {
responseError: function(rejection) {
if (rejection.status === 404) {
window.location.href = '/PageNotFound';
}
return $q.reject(rejection);
}
};
});