如何显示当前登录用户的对象详细信息

时间:2018-09-23 10:10:09

标签: java spring hibernate thymeleaf

我要创建一个页面,其中显示有关当前登录用户的详细信息并进行编辑。但是当我想要显示详细信息时,我得到了错误:

link

userDetails.html

org.springframework.expression.spel.SpelEvaluationException: EL1007E: Property or field 'username' cannot be found on null

我尝试更改为:

<span th:text="${oneUser.username}"> username: </span>
<span th:text="${oneUser.password}"> password: </span>
<span th:text="${oneUser.email}"> email: </span>

但是我只有一个页面,没有任何显示,没有任何错误

UserController.java

<span th:text="${oneUser == null ? ' ' : oneUser.username}"> username: </span>

UserRepository.java

@GetMapping("/registerUser")
public String home(Model model) {
model.addAttribute("userNew", new User());
return "registerUser";
}

@GetMapping("/userDetails")
public String show(@ModelAttribute User details, Model modelDetals) {
final String currentUserName = SecurityContextHolder.getContext().getAuthentication().getName();
details = userRepository.findByUsername(currentUserName);
modelDetals.addAttribute("oneUser", details);
return "userDetails";
}

User.java

@Repository
public interface UserRepository extends JpaRepository<User, Long> {

    User findByEmail(String email);
    User findByUsername(String username);
}

第二个问题是:如何对此细节进行操作。我的意思是例如我有第二页来编辑细节。如何使用UserRepository.java获取当前登录的用户并更改此详细信息,以用新的详细信息保存用户,而不是像在这种情况下那样通过用户名获取?

0 个答案:

没有答案