今天写删除时,删除键用的是a标签,最初根本不知道怎么把item的id传到controller层去,试了原来加问好的方法,也不知道具体问好应该加在哪里。。
然后从网上查到了一个方法,先来说说这个方法
@RequestMapping("/deleteItemsById/{itemId}")
public String deleteItemsById(@PathVariable("itemId")Integer itemId){
itemsService.deleteItemsById(itemId);
return "redirect:/items/findAllItems.action";
}
1.首先,我的RequestMapping后面括号里除了要写路径之外,还要加上/{itemId}(大括号里面随便起名),然后在我的函数参数中获取到我这个传来的参数(@PathVariable(“itemId”)Integer itemId),这个Integer类型的itemId就已经是我传递过来的参数值了,随后掉用其进行删除操作即可。
2.那么jsp中应该怎么写呢,如下
<a href="<c:url value='/items/deleteItemsById/${item.id}.action'/>">删除</a>
其实跟普通跳转是一样的,只不过 / 后面跟的是要传递的参数${item.id}。
接下来说一下第二种方法,用"?"传递参数
@RequestMapping("/deleteItemsById")
public String deleteItemsById(Items items){
itemsService.deleteItemsById(items.getId());
return "redirect:findAllItems.action";
}
<a href="<c:url value='/items/deleteItemsById.action'/>?id=${item.id}" }>删除</a>
"?"在url尖括号外面(注意位置!),id必须是数据库(对象)里面的字段名,否则上面函数接收不到,如果是id的话,上面函数的参数自动接受到这个id的值,然后调用getID的函数就可以了。