ssm整合:修改删除书籍
和添加书籍类似,我们现在Controller编写跳转修改删除书记页面请求。
再具体编写跳转的页面。我们首先写修改:
Controller:
我们再在allBook.jsp内加上修改删除按钮按钮(我们在两个按钮之前加上下划线保证美观):
<td>
<a href="${pageContext.request.contextPath}/book/toUpdate?id=${book.bookID}">修改</a>
|
<a href="">删除</a>
</td>
我们在具体修改某本书籍时,需要知道它的全部信息,所以我们给加上?id=${book.bookID}确保能拿到这本书。再走请求/book/toUpdate跳转修改页面updateBook.jsp:
和addBook.jsp格式一样,简单修改即可,实现页面复用。注意到我们这里已经写好了真正修改书籍的请求/book/updateBook,所以我们在Controller里编写修改书籍请求:
此时整个流程已经完成,我们现在测试。测试之后发现,修改之后重定向到全部书籍页面,并没有我们修改之后的书籍。我们首先认为是事务的问题,接了下来我们配置事务:
在spring-service.xml中横切:
测试之后我们发现还是不行。接下来我们在后台打印看看SQL是否正常执行:
测试
我们看到bookID为0,我们根本不存在这个ID,所以是SQL执行出了问题。检查后发现是因为在修改页面update.jsp我们只有三种属性,没有bookID,所以我们加上隐藏域:
这个消息在前端是看不见的:我们再测试
此时发现成功。
我们也可以在mybatis-config.xml中配置日志,具体查看SQL的执行
现在我们写删除功能:
Controller先编写删除功能:
在allBook.jsp中加上删除按钮:
此时发现这时我们用的是restful风格,测试删除4
成功!!!