[英]Spring MVC, two buttons work with one form, how they work together?
[英]How to have multiple buttons and treat them accordingly in a Spring MVC form?
通过使用Spring MVC + Maven + Hibernate,我正在尝试构建一个Spring MVC表单,其中包含“添加到购物车”按钮,以及“添加到收藏夹”按钮。 只要按下一个按钮,另一个按钮就会返回null,如下面的代码所示。
两个按钮都是type = submit ,我在下面的代码中处理它们。 我遇到的问题是“添加到收藏夹”的情况总是导致未捕获的异常(将我重定向到“内部错误”页面)。
我想知道是否有一种优雅的方式来单独处理表单中的每个按钮按下,而不是每个按钮都有很多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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.