如何将varStatus计数从JSP传递给Controller?

时间:2011-04-22 19:55:15

标签: java jsp spring-mvc jstl

我对Spring的注释和JSTL相当新。

我试图将索引计数的值从JSP传递给Spring Controller。但是,我不知道我怎么能这样做。我无法将此计数设置为路径变量或请求参数。 JSP中是否有一种方法可以将Model中的属性设置为特定值?

示例代码(来自here

...
<form:form modelAttribute="${questionForm}"  ... >
<%-- render HTML for your question, etc. --%>
${questionForm.question}
... 
</p>

<%-- below list your answer fields (your collection) --%>
      <c:forEach var="answer" items="${questionForm.answers}" varStatus="counter">
       <%-- display your single answer field (text area) here, 
       each element of your list may be accessed as  ${answer}, 
       and you can also access the index of the element in the list via ${counter.index} --%>

      </c:forEach>
      ... other fields, submit buttons, etc.
</form:form>
...

在此示例中,我可以将${counter.index}设置为模型{questionForm}中的属性吗?

1 个答案:

答案 0 :(得分:2)

你误解了JSP正在做什么。

Spring控制器生成一个完整的模型,该模型被转发到JSP。然后,JSP从模型中提取数据并呈现它。

JSP不会,也不能“回调”到控制器。 JSP需要完成其工作的所有内容都应该由控制器提前进入模型。

<c:forEach>内的评论为您提供完成练习所需的所有线索。