Spring mvc Spring MVC-在浏览器中请求返回值
我在STS中导入了,并添加了一个用于导航的控制器,请求被调用,返回值(而不是重定向)显示在浏览器中。知道它为什么会这样做,以及如何修复它吗 代码如下:Spring mvc Spring MVC-在浏览器中请求返回值,spring-mvc,spring-security,Spring Mvc,Spring Security,我在STS中导入了,并添加了一个用于导航的控制器,请求被调用,返回值(而不是重定向)显示在浏览器中。知道它为什么会这样做,以及如何修复它吗 代码如下: @RestController public class BetController { @RequestMapping("/") public String username(Model model) { System.out.println("Test"); model.addAttribute("username", We
@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");
}
我在浏览器中得到的只是一个空白页面,上面有startpage,查看页面的源代码没有html,只是startpage返回ModelAndView,而不是RequestMapping方法中的字符串解决了问题:
@RequestMapping("/")
public ModelAndView username(Model m) {
ModelAndView mav = new ModelAndView();
mav.addObject("username", WebSecurityConfig.getUsername());
mav.setViewName("betting");
return mav;
}
另一个解决方案是将@RestController更改为@Controller,并确保所有名称都匹配您已将控制器注释为@RestController而不是@Controller。@RestController只是为了方便起见,我强烈建议您阅读@RestController的操作,从您正在做的事情和缺少的注释中判断这种理解。相信我,它会成功的…我尝试将'@RestController'切换到'@Controller',但它没有解决问题。这也是代码的另一个问题,或者至少是您希望它如何工作。返回视图名称后,该视图名称将由ViewResolver解析为实际视图。您所配置的是/url将呈现startpage视图。我怀疑你现在得到的是404而不是statpage,我想应该是statpage。