gpt4 book ai didi

java - 如何在 Spring MVC 表单中拥有多个按钮并相应地对待它们?

转载 作者:行者123 更新时间:2023-12-03 20:29:33 24 4
gpt4 key购买 nike

通过使用 Spring MVC + Maven + Hibernate,我正在尝试构建一个同时具有“添加到购物车”按钮和“添加到 Collection 夹”按钮的 Spring MVC 表单。每当按下一个按钮时,另一个按钮就会返回 null,如下面的代码所示。

两个按钮都是type=submit,我在下面的代码中处理它们。我遇到的问题是“添加到 Collection 夹”案例总是导致未捕获的异常(将我重定向到“内部错误”页面)。

我想知道是否有一种优雅的方法可以分别处理表单中的每个按钮按下,而无需为每个按钮设置大量 if - 语句。

HTML 文件在表单结构中声明了以下项目:

<c:if test="${empty readOnly}">
<input type="number" value="1" name="quantity" class="input-mini"/>
<button class="btn btn-primary" type="submit" name="addToCart"><i class="icon-shopping-cart icon-white"><jsp:text /></i> Add</button>
<button class="btn btn-secondary" type="submit" name="favourite"><jsp:text /> Favourite This!</button>
</c:if>

我正在使用以下 Controller 方法:

   @RequestMapping(value = "/submit", method = RequestMethod.POST, produces = "text/html")
public String submit(HttpServletRequest request, Model uiModel) {

init(uiModel);
String id = request.getParameter("product-id");
String quantity = request.getParameter("quantity");

if(!request.getParameter("addToCart").toString().equals(null))
{
if (StringUtils.isNotBlank(id) && StringUtils.isNotBlank(quantity)) {
shoppingCartServiceLocal.addToShoppingCart(shoppingCart, id, quantity);
}
}

if(!request.getParameter("favourite").equals(null))
{
//ADD TO FAVOURITE
}
return "redirect:/items/" + id;
}

我可能会遗漏一些明显的东西,因为我仍在学习这些内容。任何帮助将不胜感激。

最佳答案

使用 param 属性来指定对哪个按钮使用哪个方法。

@RequestMapping(value = "/submit", method = RequestMethod.POST, params = "addToCart")
public String addToCart(HttpServletRequest request, Model uiModel) {
//your code
}

@RequestMapping(value = "/submit", method = RequestMethod.POST, params = "favourite")
public String addToFavorites(HttpServletRequest request, Model uiModel) {
//your code
}

关于java - 如何在 Spring MVC 表单中拥有多个按钮并相应地对待它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13476625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com