Circular view path [login]: would dispatch back to the current handler URL [/login] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)
在控制层的类注解是 @RestController
和 @Controller
不同,返回的并不是一个页面,而是Json字符串。原因是因为在 @Controller
上加上了 @ResponseBody
。
如果要返回一个页面有两种方式,一种是将 @RestController
改成 @Controller
,另外一种是不返回 String
而是返回一个 ModelAndView
,如下所示
@RestController public class HomeController{ @RequestMapping({"/index"}) public String index(){ return "Hello SpringBoot"; } }
@RestController public class IndexController{ private String DEFAULT_INDEX = "index"; /** * 因为是注释的是@RestController,如果返回值是String,前台返回的是内容而不是模板 * @return */ @RequestMapping({"/"}) public ModelAndView home(){ return new ModelAndView(DEFAULT_INDEX); } }
/** * 返回JSON * @param map * @return */ @RequestMapping("/indexHtml") public User helloHtml(Map<String, Object> map){ User user = new User(); user.setName("中文"); user.setId(1L); user.setCreateDate(new Date()); map.put("user", user); map.put("msg", "This is a English"); return user; } ``` ## 返回模板 ``` java /** * 返回模板 * @param map * @return */ @RequestMapping("/indexHtml2") public ModelAndView helloHtml2(Map<String, Object> map){ ModelAndView mv = new ModelAndView("user"); User user = getUser(); mv.addObject("user", user); mv.addObject("msg", "This is a English"); return mv; }
/** * 返回错误信息 * @param map * @return */ @RequestMapping("/indexHtml3") public Map helloHtml3(Map<String, Object> map) { User user = getUser(); map.put("user", user); map.put("msg", "This is a English"); return map; }