目前我正在使用Spring MVC和Hibernate。
我需要从表格到HTML中选择组件的一些信息,但它填充了下一个信息。
<select id="dept" name="dept" size="1">
<option value="{id=1, name=name1}">{id=1, name=name1}</option>
<option value="{id=2, name=name2}">{id=2, name=name2}</option>
<option value="{id=3, name=name3}">{id=3, name=name3}</option>
<option value="{id=4, name=name4}">{id=4, name=name4}</option>
<option value="{id=5, name=name5}">{id=5, name=name5}</option>
</select><input type="hidden" name="_dept" value="1"/>
而不是
<select id="dept" name="dept" size="1">
<option value=1>name1</option>
<option value=2>name2</option>
<option value=3>name3</option>
<option value=4>name4</option>
<option value=5>name5</option>
</select><input type="hidden" name="_dept" value="1"/>
但是我希望对象只用名称和 id 作为值填充。
我的 html 组件的 JSP 代码
<form:select path="dept" size="1">
<form:options items="${departments}"/>
</form:select>
我的控制器
@RequestMapping("/dept")
public ModelAndView dept(@RequestParam int id, @RequestParam int idKey) {
ModelAndView mav = new ModelAndView();
mav.addObject("departments", DAO.ListCombo(-1, -1));
mav.setViewName("User.jsp");
return mav;
}
我的道
@SuppressWarnings("unchecked")
@Transactional
public Map<String, String> ListComboDepts(int startResult, int maxRows) throws DataAccessException {
Query query = createNamedQuery("ComboDepts", startResult, maxRows);
Map Data = new HashMap();
Map<String,String> deptos = new LinkedHashMap<String,String>();
deptos = (Map<String, String>) query.getResultList();
return deptos;
}
感谢您的帮助。
一切看起来都很好,只需要在JSP,PFB代码片段上迭代您的记录
<select id="dept" name="dept">
<c:forEach var="department" items="${departments}">
<option value="${department.id}">${department.name}</option>
</c:forEach>