Исключение из Springboot / Thyme leaf - PullRequest
0 голосов
/ 15 апреля 2019

Я новичок в Springboot, поэтому решил поработать над корзиной покупок.Кажется, не удается найти корень org.springframework.expression.spel.SpelEvaluationException: EL1007E: Свойство или поле 'name' не может быть найдено в null.вложенным исключением является org.thymeleaf.exceptions.TemplateProcessingException: исключение, оценивающее выражение SpringEL: "# request.userPrincipal.name" (template: "/ _header" - строка 11, столбец 48)] с основной причиной

я ужепопытался проверить, является ли рассматриваемый объект нулевым

if (userDetails != null){
   model.addAttribute("userDetails", userDetails);
}

Пользовательский класс является абстрактным путем использования «import org.springframework.security.core.userdetails.UserDetails;»

конкретный код HTML:

<div class="header-bar">
    <th:block sec:authorize="isAuthenticated()">
      Hello
      <a th:href="@{/admin/accountInfo}" 
         th:utext="${#request.userPrincipal.name}">..</a>
         &nbsp;|&nbsp;
      <a th:href="@{/admin/logout}">Logout</a>
   </th:block>

   <th:block sec:authorize="!isAuthenticated()">
     <a th:href="@{/admin/login}">Login</a>
   </th:block>
 </div>

И код моего контроллера:

@RequestMapping(value = { "/admin/accountInfo" }, method = RequestMethod.GET)
public String accountInfo(Model model) {

    UserDetails userDetails = (UserDetails) 
SecurityContextHolder.getContext().getAuthentication().getPrincipal();
    System.out.println(userDetails.getPassword());
    System.out.println(userDetails.getUsername());
    System.out.println(userDetails.isEnabled());

     model.addAttribute("userDetails", userDetails);
     return "accountInfo";
 }

Ответы [ 2 ]

0 голосов
/ 15 апреля 2019

Проверьте недвижимость еще раз.property="principal.username".Принцип имеет свойство username Ссылка: См. Этот учебник для справки

0 голосов
/ 15 апреля 2019

Кажется, что request.userPrincipal.name равно нулю.Проверьте внимательно запрос объекта.Где ты это создаешь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...