我正在执行一个删除操作,使用spring Boot @RestController和@Controller来处理它并将其发送到视图JSP页面。我收到一个ID为null的错误。我不理解它,我尝试了几个基于搜索的步骤,但没有帮助。
@静止控制器如下:
@DeleteMapping(path = "shoelist/{id}")
public ResponseEntity delete(@PathVariable Long id) {
ShoeData data = shoeService.deleteById(id);
if(data != null) {
// noContent means it would return 204 status code
return ResponseEntity.noContent().build();
}
return ResponseEntity.notFound().build();
}
@控制器如下:
@RequestMapping(value = "deletebyid", method=RequestMethod.GET)
public String deleteById( Long id) {
ResponseEntity data = resource.delete(id);
return "redirect:entry";
}
JSP页面如下:
<h3>To delete an Item:</h3>
<form action="deletebyid" method="get">
Enter Shoe name: <input type="text" name="shoename"><br>
<button>Submit</button>
</form>
错误堆栈跟踪为:
出现错误(类型=内部服务器错误,状态=500)。无法调用“java.lang.Long.longValue()”,因为“id”为空。无法调用“java.lang.Long.longValue()”,因为在com.运动鞋.基础包.控制器.仓库控制器.deleteById(仓库控制器. java:85)上的com.运动鞋.基础包.资源.RestfulResource.delete(RestfulResource.java:55)中的“id”为空
并且在URL中显示以下内容:
http://localhost:8080/deletebydyid?shoename = 1中指定的地址
我提到id的值为1,但它是为shoename赋值的。
这里很混乱。请帮助我理解如何执行删除操作。
1条答案
按热度按时间5us2dqdw1#
我自己解决了这个问题。我在JSP中犯了一个愚蠢的错误,以前的JSP是:
name属性必须是Id!!!我的错误。
现在它工作得很好。