Java Springframework-在null上找不到属性或字段

Java Springframework-在null上找不到属性或字段,java,spring,thymeleaf,Java,Spring,Thymeleaf,我正在做一个项目,不断地出错 我刚接触thyemeleaf和spring,所以仍在学习,所以不确定您需要什么来帮助解决这个问题,所以当我知道需要提供什么时,我会更新 标题HTML,其中登录/新用户模式为 购物车 账户 帐户登录和创建

我正在做一个项目,不断地出错

我刚接触thyemeleaf和spring,所以仍在学习,所以不确定您需要什么来帮助解决这个问题,所以当我知道需要提供什么时,我会更新

标题HTML,其中登录/新用户模式为


购物车 账户 帐户登录和创建
电子邮件地址 “电子邮件已存在” 用户名 “用户名已存在” 重置 创建新帐户 请检查您的凭据,然后重试。 用户名 密码 登录 电子邮件不存在 请检查您的电子邮件中的密码重置令牌。 用户电子邮件 提交
在将用户对象放入模型之前,确保用户对象不为null

您可以通过检查
用户是否为null来避免此异常

<span style="font-style: italic;" th:text="${user != null} ? ${#strings.toUpperCase(user.username)} : 'user is null'"></span>


但是,更好的方法是确保用户在未初始化的情况下不会被添加到模型中。

我解决了这个问题。在SecurityConfig.Java文件中,我没有将.loginPage指向创建异常的正确位置

http
.csrf().disable().cors().disable()
.formLogin().failureUrl(“/login?error”).defaultSuccessUrl(“/”)
.loginPage(“/login”).permitAll()
.及()
.logout().logoutRequestMatcher(新的AntPathRequestMatcher(“/logout”))
.logoutSuccessUrl(“/?logout”).deleteCookies(“记住我”).permitAll()
.及()
.rememberMe();

}
它为空,因此无法渲染。创建一个条件,如果为null,则将username设置为占位符文本模板上下文中没有名为
user
的变量。发布负责此页面的Spring MVC控制器方法。添加了HomeControllerooks,如添加到模型中的
user
对象为
null
,因此,当您尝试渲染
user.username
时,您会遇到第一个错误。尝试在调试器中单步通过控制器查看
user
的值。当我启动服务器并将其连接到mysql中的数据库时,我确认
user kd已经存在。什么也不做。
请向我解释,根据我提供的信息,您在哪里看到的东西=null。唯一应该是=null的是用户名或电子邮件是否已经存在。这里有一个应该是
null
,并且在null*
上找不到您的错误消息
字段username*。你可以很容易地在调试器中解决它。这很好,但我不确定我到底在看什么。在寻找关于我应该寻找的内容的良好文档方面有什么帮助吗?正如我所说,我对这门语言还不熟悉,讲师就像youtube教程一样教这门课(即他没有解释任何东西,而且他所解释的内容非常模糊,以至于它所做的一切都会让人沮丧)。在控制器中将用户添加到模型中的任何位置都放置一个断点,例如
model.addAttribute(“user”,user)
。检查
user
的值,看看它是否为
null
。我在eclipse中添加了断点,它指向
抛出新的SpelEvaluationException(SpelMessage.PROPERTY\u或\u FIELD\u NOT\u READABLE\u ON\u null,name);
在守护进程线程中,最后一项是
拥有的:NioEndpoint$niosketwrapper(id=122)
无论这意味着什么,我创建的令牌可以很好地访问配置文件页面,并且当我使用令牌时,用户名显示在它应该显示的位置。但是当我尝试使用凭据登录时。我得到异常
属性或字段“id”在null上找不到
<span style="font-style: italic;" th:text="${user != null} ? ${#strings.toUpperCase(user.username)} : 'user is null'"></span>