我正在尝试实施非常基本的购物车。我正在通过spring mvc 控制器努力将项目从 page1.jsp 传递到 page2.jsp 。在上述控制器的GET方法中,我有这些项目,但这些没有在page2.jsp上显示。 Flow看起来像这样
page1.jsp(checkout) - > 控制器(GET方法中可用的值) - > pag2.jsp(空)
这是控制器。
@Controller
@SessionAttributes("cart")
public class CheckoutController
{
@RequestMapping( method = RequestMethod.GET)
public ModelAndView ShowCheckoutMenu(@ModelAttribute("cart") ArrayList<Menu> mycart, Model model)
{
// cart items available here. im adding them to the view
return new ModelAndView("checkout_menu", "cart", mycart);
}
}
现在这里是page2.jsp
<form:form modelAttribute="cart">
<table>
<tr>
<th style="width:10%">Name</th>
<th style="width:10%">Price Rs.</th>
<td></td>
</tr>
<c:set var="total_cost" value="0" scope="page" />
<c:forEach items="${cart}" var="cart_item">
<tr>
<c:choose>
<c:when test="${fn:length(cart) gt 0}">
<td style="width:10%">${cart_item.getMenuName()}</td>
<td style="width:10%">${cart_item.getMenuPrice()}</td>
<c:set var="total_cost" value="${total_cost + cart_item.getMenuPrice()}" scope="page"/>
</c:when>
<c:otherwise>
<b><i>EMPTY LIST</i></b>
</c:otherwise>
</c:choose>
</tr>
</c:forEach>
<tr>
<td style="width:10%">Total Cost:</td>
<td style="width:10%"><c:out value="${total_cost}" /></td>
</tr>
</table>
</form:form>
现在当显示page2.jsp时,它会显示EMPTY LIST,而正如我之前所说,控制器中有项目,我将它们附加到视图中。这里错在哪里???感谢输入。