spring的formBackingObject只允许返回一个对象.如果返回不同的几个对象,如何做,使用referenceData,它在formBackingObject之后调用以下是个例子SimpleFormController的子类中加入protected MapreferenceData(HttpServletRequest req) { Map<String, Object> refData = new HashMap<String, Object>(); refData.put("facils", facility.getFacilities());
return(refData);} jsp中加入
<select name="facility"><c:forEach items="${facils}" var="facil"><c:out value='${facil.name}'/>, <c:out value="${facil.fullname}"/></br><option value="<c:out value='${facil.name}'/>"<c:if test="${status.value==facil.name}">selected</c:if> 注意这样写是错误<c:forEach items="${refData.facils}" var="facil"> 因为spring已经将facils放到了request中效果与request.setAttribute("facils", facility.getFacilities());相同其实一直使用request.setAttribute也可以,那样更灵活,易读,就是违反了spring的规范 |