Как связать список категорий из базы данных в форме JSP - PullRequest
0 голосов
/ 20 июня 2019

У меня есть список категорий в базе данных, и я хочу связать эти категории в выпадающем списке: я знаю, что это глупый вопрос, и его задавали много раз, но я не получил ответа, поскольку хочу, пожалуйста, не голосуйте и не отмечайте как дубликат.

Заяц мой код: Класс контроллера:

public String getCategoryList(Model model) {
        List<Category> categoryList = categoryService.getAllCategory();
        model.addAttribute("categoryList", categoryList);
        return "redirect:/manageProduct";

    }

Класс репозитория:

@Override
    public List<Category> getAllCategory() {
        CriteriaQuery<Category> criteriaQuery = HibernateUtil.getSession(sessionFactory).getCriteriaBuilder()
                .createQuery(Category.class);
        criteriaQuery.from(Category.class);
        List<Category> categoryList = HibernateUtil.getSession(sessionFactory).createQuery(criteriaQuery)
                .getResultList();
        return categoryList;
    }

Страница JSP:

<label>Product Category</label> <select name="category"
                        class="browser-default custom-select mb-4">
                        <option value="" disabled selected>Choose Category</option>
                        <c:forEach items="${categoryList}" var="catList">
                            <option value="${catList.id}">${catList.categoryName}</option>
                        </c:forEach>
                    </select>

Если я ошибаюсь, отметьте мою ошибку и попробуйте ответить простым способом. Спасибо.

Ожидаемый результат: заполнить список категорий из базы данных. Фактический результат: Ничто не заселено.

1 Ответ

1 голос
/ 20 июня 2019

Проблема в том, что вы выполняете перенаправление из исходного запроса, и поэтому модель недоступна при визуализации представления.

public String getCategoryList(Model model) {
    List<Category> categoryList = categoryService.getAllCategory();
    model.addAttribute("categoryList", categoryList);
    //return "redirect:/manageProduct"; 
    return "/manageProduct"; 
}

Нет необходимости перенаправлять запрос GET, поэтому измените его каквыше, и все должно быть в порядке.

Если вам нужно сделать атрибуты запроса доступными после перенаправления (например, если следовать шаблону Post / Redirect / Get * https://en.wikipedia.org/wiki/Post/Redirect/Get), то вы можете использовать Flash-атрибуты.

Подробнее см. Здесь:

https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-flash-attributes

https://dzone.com/articles/spring-mvc-flash-attributes

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