![](/img/trans.png)
[英]How to display image on Jsp page from database using Hibernate and spring MVC
[英]Dynamically create checkbox from database using jsp spring mvc hibernate
业务规则:一个事件具有许多设备,并且一个设备出现在许多事件中。
我试图根据数据库中的设备表动态生成一个复选框。 我将使用此复选框添加具有许多设备的事件。 我在弄清楚如何将jsp中的设备对象转换为Set(collection),然后将其添加到事件模型时遇到问题。
这是事件模型。
public class Event {
private int eventId;
private Date startDate;
private Date endDate;
private String eventName;
private String location;
private String description;
private Set<Equipment> lstEquipments = new HashSet<Equipment>();
private Set<Staff> lstStaffs = new HashSet<Staff>();
//获取和设置以及构造函数
这是设备模型。
public class Equipment {
private int equipmentId;
private String equipment_Name;
private Set<Event> lstEvents = new HashSet<Event>();
//获取和设置
这是jsp形式。
<table>
<form:form action="saveEvent" method="POST"
modelAttribute="eventModel">
<form:hidden path="eventId" />
<tr>
<td>Start Date (YYYY-MM-DD) :</td>
<td><form:input path="startDate" /></td>
<td><form:errors path="startDate" cssClass="error"></form:errors></td>
</tr>
<tr>
<td>End Date(YYYY-MM-DD) :</td>
<td><form:input path="endDate" /></td>
<td><form:errors path="endDate" cssClass="error"></form:errors></td>
</tr>
<tr>
<td>Event Name :</td>
<td><form:input path="eventName" /></td>
<td><form:errors path="eventName" cssClass="error"></form:errors></td>
</tr>
<tr>
<td>Location :</td>
<td><form:input path="location" /></td>
<td><form:errors path="location" cssClass="error"></form:errors></td>
</tr>
<tr>
<td>Description :</td>
<td><form:input path="description" /></td>
<td><form:errors path="description" cssClass="error"></form:errors></td>
</tr>
<tr>
<td>Equipments :</td>
<td><form:checkboxes path="lstEquipments" items="${listEquipment}"/></td>
<td><form:errors path="lstEquipments" cssClass="error"></form:errors></td>
</tr>
<tr>
<td>Staffs :</td>
<td><form:checkboxes path="lstStaffs" items="${listStaff}"/></td>
<td><form:errors path="lstStaffs" cssClass="error"></form:errors></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit"
value="Save"></td>
</tr>
</form:form>
</table>
这是保存事件的控制器。
@RequestMapping(value ="/saveEvent", method = RequestMethod.POST)
public ModelAndView submitForm(ModelAndView mnv, @Valid @ModelAttribute("eventModel") Event event, BindingResult result) throws IOException {
//pull a list of available Equipments from the relational database.
Set<Equipment> listEquipment = equipmentDAO.list();
mnv.addObject("listEquipment", listEquipment);
//pull a list of available Staffs from the relational database.
Set<Staff> listStaff = staffDAO.list();
mnv.addObject("listStaff", listStaff);
if(result.hasErrors()) {
//pull a list of Event from DB for display in JSP.
Set<Event> listEvent = eventDAO.list();
mnv.addObject("listEvent", listEvent);
mnv.addObject("eventModel", event);
mnv.setViewName("index");
return mnv;
}
//update the database with a new event.
eventDAO.saveOrUpdate(event);
//pull a list of Event from DB for display in JSP.
Set<Event> listEvent = eventDAO.list();
mnv.addObject("listEvent", listEvent);
mnv.addObject("eventModel", new Event());
mnv.setViewName("index");
return mnv;
}
在要输出设备的form:checkboxes标记中,确保像下面这样指定itemLabel和itemValue属性:
<form:checkboxes path="lstEquipments" items="${listEquipment}" itemLabel="equipment_Name" itemValue="equipmentId"/>
现在,在保存方法中,您将为每个所选设备拥有唯一的标识符。 您可以访问这些ID(从mnv对象的lstEquipment属性中)并从数据库中获取其全名,以便可以创建一堆Equipment对象并将其添加到集合中并将该集合放入Event对象中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.