Свойство или поле 'products' не может быть найдено на null th: - PullRequest
0 голосов
/ 12 мая 2018

У меня проблема с тимьяном

Вот мой контроллер продукта:

@GetMapping(path = "/search_results")
  public String search(@RequestParam(value = "search", required = false) String search, Model model){
    List<Product> productList = productRepository.findAll();

    for (Product product : productList) {
      System.out.println("Product ID: " + product.getID_product());
      if (product.getProdName().contains(search) || product.getProdBrand().contains(search)){
        model.addAttribute("price", product.getPrice());
        System.out.println("Price: " + product.getPrice());
        model.addAttribute("prodName", product.getProdName());
        System.out.println("Name: " + product.getProdName());
        model.addAttribute("category_name", product.getCategory().getCategory_name());
        System.out.println("Category: " + product.getCategory().getCategory_name());
        model.addAttribute("prodDesc", product.getProdDesc());
        model.addAttribute("prodImage", product.getProdImage());
        model.addAttribute("prodBrand", product.getProdBrand());
      }
    }
    return "search_results";
  }

И это некоторые фрагменты моего HTML: Окно поиска:

<form method="get" action="/search_results" th:action="@{/search_results}" th:object="${productController}"/>
          <input th:text="${search}" class="col-8.5" type="text" id="search" name="search"
                 placeholder="Search for Products and Brands">
          <input id="searchButton" class="navbar-toggler" type="submit" value="Search"/>
        </form>

и карта результатов поиска:

<div class="card h-20">
                <a th:href="@{/item_details}"><img class="card-img-top" th:blob="${prodImage}" alt="image"></a>
                <div class="card-body" th:each="product : *{products}">
                  <h4 class="card-title">
                    <a th:href="@{/item_details}" th:text="${product.prodName}"/>
                  </h4>
                  Rp:
                  <span text="price" th:text="${product.price}"/><br>
                    Category:
                  <a text="category_name" th:text="${product.category_name}" name="category_name"/>
                </div>
                <div class="card-footer">
                  <small class="text-muted">&#9733; &#9733; &#9733; &#9733; &#9734;</small>
                </div>
              </div>

Но когда я ввожу элемент поиска, он получается с такой ошибкой:

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

Что я сделал не так?

1 Ответ

0 голосов
/ 14 мая 2018

Вы забыли вставить в свою модель атрибут товара.У вас должно быть что-то подобное в вашем контроллере

List<Product> productList = productRepository.findAll();
model.addAttribute("products", productList);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...