首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的servlets

Java中的servlets
EN

Stack Overflow用户
提问于 2011-03-30 01:04:14
回答 5查看 497关注 0票数 0

我想要的是显示与每个产品的“添加到购物车”按钮的产品列表。如何将该按钮与产品关联?

也就是说,如果我单击将商品A添加到购物车中,我将如何在按钮中指定,以调用将添加商品的ShoppingCart类。

我已经有了一个servlet,用于将所有产品填充到ArrayList中,并将其转发到JSP页面。

代码语言:javascript
复制
<form action="products" method="get">
<table border=1>
    <c:forEach items="${products}" var="product">
        <tr>
            <td>${product.id}</td>
            <td>${product.description}</td>
            <td>${product.unitPrice}</td>
            <td><input type="button" value="Add to cart" onlick="????"/></td>
        </tr>
    </c:forEach>
</table>
</form>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-03-30 01:15:27

将表单放在<td>中,而不是放在桌子周围。使用<inupt type="submit">让按钮真正起作用,而不需要JavaScript黑客,因为在禁用JS的let浏览器上无论如何都会失败。在表单中包含一个<input type="hidden">以传递产品ID。

摘要:

代码语言:javascript
复制
<table border=1>
    <c:forEach items="${products}" var="product">
        <tr>
            <td>${product.id}</td>
            <td>${product.description}</td>
            <td>${product.unitPrice}</td>
            <td>
                <form action="products" method="get">
                    <input type="hidden" name="id" value="${product.id}" />
                    <input type="submit" value="Add to cart"/>
                </form>
            </td>
        </tr>
    </c:forEach>
</table>

这样,它将在监听/products的servlet的doGet()方法中如下所示。

代码语言:javascript
复制
String id = request.getParameter("id");
// ...

对于与具体问题无关的,您应该使用POST而不是GET。否则,当他/她将结果页加入书签并稍后打开它时,或者当他/他只是在电子邮件/即时消息/站点/等中单击/跟随另一个(潜在的恶意)人员传递的链接时,用户将能够将另一个产品添加到他的篮子中。将method="get"替换为method="post",并将doGet()中的逻辑移动到doPost()

票数 2
EN

Stack Overflow用户

发布于 2011-03-30 01:08:56

代码语言:javascript
复制
 <td><a href="/yourShopKeeperServlet?productId=${product.id}"> <~-- Your Image Goes here --> </a></td>

它将使GET转到servlet。从那里你可以读到

代码语言:javascript
复制
request.getParameter("productId");
票数 2
EN

Stack Overflow用户

发布于 2011-03-30 01:08:53

我已经在jsp上工作了很长时间了,但是我可以给你一个概念,并把实现留给你。

在每个servlet tr servlet中你将有一个表单,与隐藏的值item_id和按钮在表单中作为提交动作,以及另一个隐藏项命名为"add“servlet每个表单将提交给你的一个servlet,让我们命名为shoppingcart

  • in servlet,在处理请求时,你将看到是否有一个参数名为”add“。如果是,那么您将获得名为"item_id“的参数,并将该商品添加到购物车中。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5476201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档