将购物车项目通过控制器传递到另一个jsp页面

时间:2015-05-27 08:43:08

标签: jsp spring-mvc servlets dispatcher

我正在尝试实施非常基本的购物车。我正在通过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,而正如我之前所说,控制器中有项目,我将它们附加到视图中。这里错在哪里???感谢输入。

0 个答案:

没有答案