1
我是Spring MVC,Spring Data JPA和Java EE技術的新手。我有一個表格檢索數據,表格中有一個刪除文本。當用戶按下刪除時,我需要從數據庫中刪除它。這是我試過的。但我發現了從數據庫中刪除值 - Spring MVC,數據JPA
HTTP ERROR 404 Problem accessing /listProducts/delete/112. Reason: Not Found
這是我的內部控制器
@RequestMapping(value = "/listProducts/delete{productId}",method = RequestMethod.GET)
public int delete(@PathVariable("productId") int productId){
productService.delete(productId);
return "listProducts";
}
在我的JSP方法。這是刪除文本
<td><a href="${pageContext.request.contextPath}/listProducts/delete/${product.productId }"
onclick="return confirm('Are you sure')">Delete</a>
</td>
服務和服務實現類是正確的。請幫助解決這個問題
您忘記了'delete'和'{productId}'之間的斜線。不要使用GET來刪除。使用DELETE(或至少,POST)。任何網絡爬蟲(如谷歌機器人)導航您的網頁將通過自動點擊鏈接刪除所有的值,鏈接之間應該用於導航,而不是刪除的東西。使用表單。投票結束打字錯誤。 –
@JBNizet非常感謝。我對Spring很陌生。我需要使用表中的刪除鏈接來檢索這些數據。我已將其更改爲刪除。我沒有得到你的最後一部分。我怎樣才能改變這個以正確的方式? – venura
除了鏈接,要刪除項目,請使用POST方法提交要刪除的同名ID(存儲爲表單中的隱藏字段)的表單。或者使用按鈕代替鏈接並使用JavaScript(AJAX)發送刪除請求以刪除該項目。如果您使用鏈接,網絡爬蟲將嘗試瀏覽所有鏈接,並因此刪除所有項目,因爲鏈接是爲了在頁面之間安全地導航而不是刪除項目。這就是網絡設計的方式,你最好尊重這個設計。 –