Spring Boot页面加载时出现IllegalStateException异常求助
解决Spring Boot + Thymeleaf的IllegalStateException问题
嘿,我一眼就揪出问题所在啦!你碰到的IllegalStateException,本质是Thymeleaf渲染index.html页面时,找不到名为user的请求属性——但你的表单偏偏用了th:object="${user}"来绑定对象,自然就报错了。
问题根源
当你访问根路径/时,IndexController里的index()方法只是直接返回index视图,完全没往Model里添加user对象。Thymeleaf需要这个对象来解析表单中的th:field属性,找不到它可不就抛出异常嘛!
解决方案
修改根路径的处理方法,在返回视图前给Model注入一个空的User对象就行:
@RequestMapping("/") public String index(Model model) { // 新增这行,给Thymeleaf提供绑定用的user对象 model.addAttribute("user", new User()); return "index"; }
额外小提醒
顺带提一句,你的getLogin()方法返回的是success视图,如果这是登录成功后的页面没问题;但如果/login是用来展示登录表单的,那可能得调整视图名(比如改成login),不过这不是当前异常的诱因哈。
修改完控制器后再访问首页,Thymeleaf就能找到user对象,正常渲染表单字段,这个异常肯定就消失啦!
内容的提问来源于stack exchange,提问作者CS2016
相关产品推荐
相关产品推荐

