2015-06-22 3 views
0

Я пытаюсь вернуть представление под моей папкой /WEB-INF/jsp/ с именем person.jsp при щелчке якоря. Мой view resolver обрабатывает все представления в этой папке. Вот мой тег:Spring @Controller не возвращается Просмотр как ожидается

<a class="add" href="#">Click</a> 

Мой AJAX GET запрос:

$(document).on("click", ".add", function(e) { 
    request = /person/ + personID 
    //success, failure, etc. 
} 

А вот мой @Controller

@Controller 
public class RCITTFormController { 

    @RequestMapping(value = "/person/{id}", method = RequestMethod.GET) 
    public String getPerson(@PathVariable String id){ 
     return "person";  
    } 
} 

Однако мой persons.jsp возвращается только в HTTP Response (он ведет себя так, если бы я установил мой класс как @RestController). Я попробовал «redirect:/person», возвратил экземпляр ModelAndView с person, который был передан в качестве представления, но безрезультатно. Является ли моя проблема чем-то более простым, например, тегом привязки? При необходимости может содержать более подробную информацию.

Спасибо большое

+0

Правильно ли я предполагаю, что вы пытаетесь использовать AJAX для перенаправления на person.jsp? – Aeseir

+0

Это правильно –

+0

Основываясь на коде, я вижу все, что он будет делать в настоящее время, остается на родительской странице и возвращает представление как ответ ajax, это то, что происходит в данный момент? – Aeseir

ответ

1

Решение этой проблемы заключается в следующем:

$(document).on("click", ".add", function(e) { 
    request = /person/ + personID 
    window.location.href = request; 
} 

Это направит вас на страницу, которую вы после этого.

window.location.href заставит ваш сайт перейти на страницу после вас, но для этого вам не нужен ajax. Просто используйте стандартную привязку href.

0

Попробуйте вернуть ModelAndView, как вернуть новый ModelAndView («человек»). Это, если ваш JSP действительно назван человеком.

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