Я искал множество источников, чтобы найти точный ответ, который мне нужен, но, к сожалению, я не мог понять, или они никогда не попадали в точное место, которое мне нужно ,Заполнение меню DropDown из базы данных MySQL с использованием Hibernate в Spring MVC
В основном, я разрабатываю веб-приложение spring-mvc, и я позволю пользователю добавить сообщение на сайт. При добавлении этого сообщения он/она будет идентифицировать некоторые функции сообщения, и одна из особенностей - Категория. Все работает отлично, но категория. Я попытался реализовать это поле категории с выпадающим меню, но при запуске проекта я ничего не заполняю в раскрывающемся списке.
Вот мой JSP страница:
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@include file="/WEB-INF/views/template/header.jsp" %>
<div id="page">
<div id="main">
<div class="row">
<div class="three columns"></div>
<div class="six columns">
<form:form action="${pageContext.request.contextPath}/addPost" method="post" commandName="post"
enctype="multipart/form-data">
<div class="form-group">
<label>Kategori</label>
<form:select path="category" id="category">
<form:option value="NONE" label="--- Seçiniz ---"/>
<form:options items="${category}"></form:options>
</form:select>
<!--select name="category">
<option name="category_id" value="0">Seçiniz</option>
</select-->
</div>
<div class="form-group">
<label>İlan Başlığı</label> <form:errors path="postTitle" cssStyle="color: #ff0000"/>
<form:input path="postTitle" id="title" class="form-Control"/>
</div>
<div class="form-group">
<label>İlan Açıklaması</label>
<form:input path="description" id="description" class="form-Control"/>
</div>
<!--div class="form-group">
<label>Etiketler</label>
<input type="text" class="asdasd" name="title" placeholder="İlanınız ile ilgili etiketler" required>
</div-->
<div class="form-control">
<label>Fiyat</label> <form:errors path="price" cssStyle="color: #ff0000"/>
<form:input path="price" id="price" class="form-Control"/>
</div>
<div class="form-group">
<label>Lokasyon</label>
<form:input path="postAddress" id="address" class="form-Control"/>
</div>
<div class="form-group">
<label class="control-label" for="postImage">Fotoğraf Yükle</label>
<form:input name="file" path="postImage" id="postImage" type="file" class="form:input-large"/>
</div>
<div class="form-group">
<button type="submit" value="submit" class="btn btn-send-message pull-right">İLAN OLUŞTUR</button>
</div>
</form:form>
</div>
<div class="three columns"></div>
</div>
</div>
А вот мой контроллер функция:
@RequestMapping(value= "/addPost", method = RequestMethod.GET)
public String addPost(Model model) {
Post post = new Post();
post.setActive(true);
List<Category> category = categoryService.getAllCategories();
model.addAttribute("category", category);
model.addAttribute("post", post);
return "addPost";
}
То, что я хочу сделать здесь, я хотите получить необходимые данные из таблицы базы данных который я создал с помощью Hibernate, и отправьте его в раскрывающееся меню.
Многие примеры здесь, в SO и некоторых других блогах, показывают такую функцию, как заполнение выпадающего меню с контроллера вручную. Это то, чего я не хочу. До сих пор ближайший ответ, который я могу найти, - this. Но так как я новичок весной, я не мог это получить.
Если кто-нибудь может указать мне в правильном направлении, как это сделать, это будет большой помощью.
Заранее спасибо.
Вы имеете в виду ** beans ** by ** two properties **? – Prometheus
Ваша модель имеет два атрибута: «пост» и «категория». Когда вы используете привязку формы Spring, ваша модель должна иметь только 1 атрибут (для каждой формы). Это связано с тем, что вы можете обращаться к одному компоненту (атрибуту модели) с помощью имени команды, а каждый атрибут пути всегда относится к командному компоненту. Если это недостаточно ясно, я рекомендую вам снова прочитать документацию и получить правильную терминологию. –