gpt4 book ai didi

java - 即使映射是正确的,也没有 GET 的映射

转载 作者:行者123 更新时间:2023-11-30 01:46:20 24 4
gpt4 key购买 nike

2019-09-05 14:02:28.776 WARN 11096 --- [nio-8080-exec-3] o.s.web.servlet.PageNotFound : No mapping for GET /company/delete

我有一个使用 spring boot 和 JSP 页面的 CRUD 项目。

这是 Controller 删除方法

@PostMapping("delete/{coupid}")
public String removeCoupon(@PathVariable int coupid) {

couponService.deleteById(coupid);

return "couponRemoved";
}

有一种方法可以在JSP页面中显示所有优惠券:

@GetMapping("/read")
public String getAllCoupons(Model theModel) {

List<Coupon> theCoupon = companyService.getCurrentCompany().getCoupons();

theModel.addAttribute("theCoupon", theCoupon);

return "showAllCoupons";
}

只需将每个优惠券添加到模型中,然后重定向到一个循环显示所有优惠券的页面:

<table class="i">
<tr>
<th>id</th>
<th>title</th>
<th>start</th>
<th>end</th>
<th>amount</th>
<th>type</th>
<th>message</th>
<th>price</th>
<th>image</th>
</tr>

<c:forEach var="tempCoupon" items="${theCoupon}" >
<tr>
<td> ${tempCoupon.coupid} </td>
<td> ${tempCoupon.title} </td>
<td> ${tempCoupon.startd} </td>
<td> ${tempCoupon.endd} </td>
<td> ${tempCoupon.amount} </td>
<td> ${tempCoupon.type} </td>
<td> ${tempCoupon.message} </td>
<td> ${tempCoupon.price} </td>
<td> ${tempCoupon.image} </td>
<td><a href="${pageContext.request.contextPath}/company/delete?coupid=${tempCoupon.coupid}"> Remove ${tempCoupon.coupid} </a></td>

</tr>
</c:forEach>

</table>

正如您在 JSP c:forEach 循环中看到的那样,我还包含了一个 href 链接:

<td><a href="${pageContext.request.contextPath}/company/delete?coupid=${tempCoupon.coupid}"> Remove ${tempCoupon.coupid} </a></td>

它在循环中获取当前优惠券并将其 ID 放入链接中。

当我运行它并单击“删除”时,我得到:

2019-09-05 14:02:28.776 WARN 11096 --- [nio-8080-exec-3] o.s.web.servlet.PageNotFound : No mapping for GET /company/delete

最佳答案

在您的请求中,您使用 coupid 作为 PathVariable 而不是 RequestParam,因此也像这样发送

例如:

<td><a href="${pageContext.request.contextPath}/company/delete/${tempCoupon.coupid}"> Remove ${tempCoupon.coupid} </a></td>

所以基本上您的资源可以像 /company/delete/123 一样访问,并且您尝试像 /company/delete?coupid=123 一样访问它,这会导致错误。

另外您实际上正在发送 GET 请求,但您的资源是 POST,因此将其更改为 GET如:

@GetMapping("delete/{coupid}")
public String removeCoupon(@PathVariable int coupid) {

couponService.deleteById(coupid);

return "couponRemoved";
}

关于java - 即使映射是正确的,也没有 GET 的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57804169/

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