java - 将对象数据从 JSP 传递到 Spring Controller Post 方法而不是 GET 方法

标签 java spring jsp spring-mvc

我是 Spring Web MVC 的新手,正在开发 Web 应用程序。 在某些情况下,我需要将数据值传递给 Controller。 (注意:这里的数据值是bean对象的一个​​值)

Item Number  Item Name  Description  Price

 Item1018     Item1      Desc1        5.0      Add item to Cart  
 Item1019     Item2      Desc2        2.0      Add item to Cart  

如上图所示,如果我点击“将商品添加到购物车”,相应的商品编号应传递给 Controller ​​。

View 菜单.jsp

<c:forEach items="${model.itemlists}" var="item">
<tr>
   <c:if test = "${item.status == 'available'}">   
    <td><c:out value="${item.itemNo}"/>  </td>
    <td><c:out value="${item.itemName}"/></td>
    <td><c:out value="${item.description}"/></td>
    <td><c:out value="${item.price}"/></td>
    <td><a href="<c:url value="additemtocart">
             <c:param name='itemNumber' value="${item.itemNo}"/>
         </c:url>">Add item to Cart</a> </td>
    </c:if>
</tr>
</c:forEach>

CustomerController.java 方法

@RequestMapping(value = "additemtocart",method = RequestMethod.GET)
     public ModelAndView addItemToCart(@RequestParam("itemNumber") String itemno  ) throws ClassNotFoundException, SQLException {
                   System.out.println("Username test in customer controller: "+userName);

 }

代码有效并且能够传递值。但根据 GET 和 POST 方法的标准(描述 here ),我认为我做错了。请建议是否有任何其他方法可以将数据传递给 POST 方法。请建议我。提前致谢

(第一次发帖,如有错误请多多包涵)

最佳答案

将所有内容放入表单中(使用 Spring 的 <form:form> 标记)。这会将表单发布到显示它的相同 URL。如果你想 POST 到不同的 URL,那么设置 action表单的属性。

更改您的 Add item to Cart链接到提交按钮,因为您不应该使用 GET 更改数据。您可以根据需要设置样式,并根据需要使其看起来像一个链接。

你的按钮应该是这样的:

<button type=submit name=itemNumber value=xxx>Add item to Cart</button>

在你的 Controller 中,你应该有一个带有请求映射的处理程序方法,如下所示:

@RequestMapping(value="additemtocart", method=RequestMethod.POST, params={"itemNumber"})

然后您应该使用 Post-Redirect-Get 模式重定向回产品列表。请参阅 Spring MVC 文档中的 flashAttributes。

关于java - 将对象数据从 JSP 传递到 Spring Controller Post 方法而不是 GET 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27010706/

相关文章:

java - Aerogear Unified Push 不按别名过滤

java - Spring MVC validator : validate using current session object

java - 这个春训有用吗?

jsp - NetBeans Tomcat Jsp mysql 表单登录和 session

java - 应用程序引擎中的代码分割

java - -libraryjars,proguard 的目的是什么?

java - 复选框不显示

java - 我应该为 DTO 使用 Serialized 吗?为什么应该使用?

java - 具有动态构造函数值的spring bean

java - JSP 页面只从数据库中加载一张图片