在Spring MVC中使用Hibernate从SQL数据库填充下拉菜单
问题内容:
我之前已经做过类似的事情,但是从未使用过这种特殊的配置。我查找的每个示例都显示了在控制器中设置了选项的下拉菜单,当我不希望它们在控制器中逐行设置,而是从SQL数据库的列中提取时。
我目前有其他表单是从同一表和列中提取的,但下拉列表中有。我什么都没有。这是JSP
这就是我在jsp中所拥有的,以前我使用过a c:forEach
,并且我怀疑我可能不得不将其与jsp use bean一起使用。
<table>
<tr>
<td>Job:</td>
<td>
<form:select path="Job.jobName">
<form:option value="" label="Select Job"/>
<form:options value="" items="${job.jobName}"/>
</form:select>
</td>
<td><form:errors path="job.jobName" /> </td>
</tr>
</table>
这是控制器中的方法调用,还有很多,但这是我正在使用的方法。
List<Job> jobList = jobService.listjobsByPage(page);
这是对DAOImpl的查询
public List<Job> getDataByJobName(String jobName) {
Session session = sessionFactory.openSession();
List<Job> result = null;
try{
session.beginTransaction();
Query query = session.createQuery("from Job where upper(jobName) like ? " +
"order by jobName");
query.setParameter(0, "%" + jobName + "%");
result = query.list();
session.getTransaction().commit();
session.close();
} catch(Exception e){
e.printStackTrace();
}
return result;
}
如果有人甚至可以向我指出正确的设置方向,那将是很大的帮助。
提前致谢。
问题答案:
您必须先做:
ModelAndView model = new ModelAndView("index");
model.addObject("lists", list);
比
<form:select path="list">
<form:options items="${lists}" />
</form:select>