春天的mvc

时间:2014-11-01 18:57:47

标签: spring spring-mvc

好的,所以我使用下面的代码在我的页面上显示了一个下拉列表:

<form:select path="subject.subjectId" 
             items="${subjectList}" itemValue="subjectId" itemLabel="name" />

如下所示的html完美呈现,并且在提交表单时控制器上的数据可用。

<select id="subject.subjectId" name="subject.subjectId">
  <option value="1">Japanese</option>
  <option value="2">Chinese</option>
  <option value="3">Maths</option>
  <option value="4">Science</option>
  <option value="5">English</option>
  <option value="6">Geography</option>
</select>

我面临的唯一问题是,在呈现页面时没有发生数据绑定,即value = 5未设置为&#39; selected&#39;即使subject.subjectId = 5,也会呈现页面。

我知道可能的工作如下,但这不是一个优雅的解决方案

<!-- <form:select path="subject.subjectId" items="${subjectList}" itemValue="subjectId" /> -->
<form:select path="subject.subjectId">
  <c:forEach var="subject" items="${subjectList}">
   <option value="${subject.subjectId}" 
    <c:if test="${subject.subjectId eq record.subject.subjectId}">selected="selected"</c:if>>
     <c:out value=" ${subject.name}"/>
      </option>                             
   </c:forEach>
 </form:select>  

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

所以我在互联网here

上看到相同的示例代码时想出来了

虽然我的表单选择标记的语法是正确的,但我需要执行以下操作

a)返回一个&#39;命令&#39;来自控制器的ModelAndView中的对象。

b)删除&#39; modelAttribute&#39;来自jsp的属性

现在spring mvc表单:select数据绑定工作正常。