2013-11-09 4 views
0

У меня есть контроллер, который обрабатывает URL studentEdit.html. Когда я перехожу к значению контроллера «get» с помощью AJAX, мне нужно перенаправить на другую страницу viewStudents.html, но ничего не происходит. Я остаюсь на той же странице. Метод возвращает ModelAndView, но почему он не перенаправляет на другую страницу, которую я не знаю.Spring MVC. Страница перенаправления

Я также попытался установить URL как:

перенаправления: viewStudents.html и перенаправлять: viewStudents

, но это не помогло.

@RequestMapping(value = "/studentEdit.html", method = RequestMethod.GET) 
public ModelAndView getStudentProfile(@RequestParam(value = "get", required = false) String get) { 

    if(get != null && get.equals("get")) { 
     return new ModelAndView("redirect:/viewStudents.html"); 
    } else { 
     ModelAndView mav = new ModelAndView("studentEdit"); 
     return mav; 
    } 
} 


function getStudent() { 
      $.ajax({ 
       type: "GET", 
       url: "/IRSystem/studentProfileEdit.html", 
       data: "get=" + 'get', 
       success: function(response) { 

       }, 
       error: function(e) { 
        alert('Error' + e); 
       } 

      }); 
     } 

Буду признателен за любую информацию, спасибо.

+0

Есть ли причина, по которой вы делаете это на стороне сервера? Вы должны просто использовать Javascript для перенаправления, если вы фактически не извлекаете данные с сервера. – ntaylor2

+0

Вы перенаправляете сам запрос AJAX. При таком подходе невозможно переустановить страницу. –

+0

Вы можете решить эту проблему, добавив заголовок, например. 'X-Redirect-Url:/my/redirect' для ответа и действовать по этому значению в вашем обратном вызове. Если ваша среда позволяет вам, конечно. – Bart

ответ

0

Если вы хотите перенаправить на другую страницу после запроса, нет необходимости использовать AJAX.

Простая ссылка должна быть достаточно:

<a href="/IRSystem/studentProfileEdit.html?get=get">click me</a> 

Что происходит, когда вы щелкаете по ссылке:

  • запрос GET к /IRSystem/studentProfileEdit.html выполняется
  • get=get передается в качестве данных запроса
  • по умолчанию пользователь перенаправляется на ссылку href (то есть /IRSystem/studentProfileEdit.html), но вы можете перенаправить его куда-нибудь еще

Предполагая, что остальная часть кода является правильным, используя <a>, как упоминалось выше, вместе с redirect:/viewStudents.html должны перенаправлять по желанию.

Также check the docs о префиксе redirect:, чтобы убедиться, что ваш перенаправление интерпретирован правильно.

+0

Спасибо. Это помогло. – Vlad

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