2015-02-23 2 views
1

Я зарегистрировал следующие viewResolvewer:отображения не найдено для запроса HTTP с URI, а перенаправлять

 <bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix"> 
      <value>/WEB-INF/pages/</value> 
     </property> 
     <property name="suffix"> 
      <value>.jsp</value> 
     </property> 
    </bean> 

и написал следующий метод контроллера:

@ExceptionHandler(value = Exception.class) 
    public String redirectToErrorPage(){ 
     return "redirect:/errorPage"; 
    } 

Когда следующий метод выполняет я вижу следующий лог:

WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/errorPage] in DispatcherServlet with name 'appServlet' 

страница с именем errorPage.jsp находится под папкой страницы: enter image description here

Пожалуйста, объясните, что я не так?

ответ

0

Вы перенаправляетесь на URL «/ errorPage», но нет сопоставления запросов для /errorPage. Вы можете добавить контроллер с этим запросом отображения т.д .:

@Controller 
public class ErrorPageController { 

    @RequestMapping("/errorPage") 
    @ResponseStatus(value=HttpStatus.INTERNAL_SERVER_ERROR) 
    public String showErrorPage(){ 
     return "errorPage"; 
    } 
} 

Или вместо перенаправления, вы можете просто показать страницу ошибки из обработчика исключений.

@ExceptionHandler(value = Exception.class) 
@ResponseStatus(value=HttpStatus.INTERNAL_SERVER_ERROR) 
public String handleException(Exception e){ 
    return "errorPage"; 
} 
+0

Я могу перенаправить только на метод контроллера? – gstackoverflow

Смежные вопросы