2015-01-05 2 views
1

Я импортировал Getting Started - Securing a Web Application в STS и добавил контроллер для навигации, запрос вызывается, а возвращаемое значение вместо перенаправления отображается в браузере. Любая идея, почему она это делает и как ее исправить?Spring MVC - Request Возвращаемое значение в браузере

Вот код:

@RestController 
public class BetController { 

@RequestMapping("/") 
public String username(Model model) { 
    System.out.println("Test"); 
    model.addAttribute("username", WebSecurityConfig.getUsername()); 
    return "statpage"; 
} 

начальная страница страницы зарегистрирована таким образом:

@Configuration 
public class MvcConfig extends WebMvcConfigurerAdapter { 

@Override 
public void addViewControllers(ViewControllerRegistry registry) { 
    registry.addViewController("/").setViewName("startpage"); 
    registry.addViewController("/login").setViewName("login"); 
} 

Все я получаю в браузере пустой страница с «стартовым» на нем, глядя на источник страницы, нет html только «начальная страница»

+1

Вы аннотированный контроллер с '@ RestController' вместо' @ Controller'. –

+0

@RestController просто для удобства http://stackoverflow.com/questions/25242321/difference-between-spring-controller-and-restcontroller-annotation –

+0

Я настоятельно рекомендую вам прочитать, что делает '@ RestController', как судя по тому, что вы делаете, и ваш комментарий вам не хватает этого понимания. Поверьте мне, что это заставило его работать ... –

ответ

0

Возвращение ModelAndView вместо String в методе RequestMapping разрешило проблему:

@RequestMapping("/") 
public ModelAndView username(Model m) { 
    ModelAndView mav = new ModelAndView(); 
    mav.addObject("username", WebSecurityConfig.getUsername()); 
    mav.setViewName("betting"); 
    return mav; 
} 

Другим решением является изменение @RestController к @Controller и убедившись, что все имена совпадают