本文共 3076 字,大约阅读时间需要 10 分钟。
4 删除页面
用户操作流程:1、用户进入用户列表,点击“删除”2、执行删除操作,提示“删除成功”或“删除失败” 4.1 删除页面接口定义@ApiOperation("通过ID删除页面")
public ResponseResult delete(String id);4.2 删除页面服务端开发
4.2.1Dao 使用 Spring Data提供的deleteById方法完成删除操作 。4.2.2 Service//删除页面 public ResponseResult delete(String id){ CmsPage one = this.getById(id); if(one!=null){ //删除页面 cmsPageRepository.deleteById(id); return new ResponseResult(CommonCode.SUCCESS); } return new ResponseResult(CommonCode.FAIL); }
4.2.3Controller
@DeleteMapping("/del/{id}") //使用http的delete方法完成岗位操作 public ResponseResult delete(@PathVariable("id") String id) { return pageService.delete(id); }
4.3 删除页面前端开发
4.3.1 Api方法/*页面删除*/ export const page_del = id => { return http.requestDelete(apiUrl+'/cms/page/del/'+id) }
4.3.2编写页面
1、在page_list.vue页面添加删除按钮编辑 删除
2、删除事件
//删除 del:function (pageId) { this.$confirm('确认删除此页面吗?', '提示', {}).then(() => { cmsApi.page_del(pageId).then((res)=>{ if(res.success){ this.$message({ type: 'success', message: '删除成功!' }); //查询页面 this.query() }else{ this.$message({ type: 'error', message: '删除失败!' }); } }) }) }
5 异常处理 5.1 异常处理的问题分析
从添加页面的service方法中找问题://添加页面 public CmsPageResult add(CmsPage cmsPage){ //校验页面是否存在,根据页面名称、站点Id、页面webpath查询 CmsPage cmsPage1 =cmsPageRepository.findByPageNameAndSiteIdAndPageWebPath(cmsPage.getPageName(), cmsPage.getSiteId(), cmsPage.getPageWebPath()); if(cmsPage1==null){ cmsPage.setPageId(null);//添加页面主键由spring data 自动生成 cmsPageRepository.save(cmsPage); //返回结果 CmsPageResult cmsPageResult = new CmsPageResult(CommonCode.SUCCESS,cmsPage); return cmsPageResult; } return new CmsPageResult(CommonCode.FAIL,null); }
问题:
1、上边的代码只要操作不成功仅向用户返回“错误代码:11111,失败信息:操作失败”,无法区别具体的错误信 息。2、service方法在执行过程出现异常在哪捕获?在service中需要都加try/catch,如果在controller也需要添加 try/catch,代码冗余严重且不易维护。解决方案:1、在Service方法中的编码顺序是先校验判断,有问题则抛出具体的异常信息,最后执行具体的业务操作,返回成 功信息。2、在统一异常处理类中去捕获异常,无需controller捕获异常,向用户返回统一规范的响应信息。代码模板如下://添加页面 public CmsPageResult add(CmsPage cmsPage){ //校验cmsPage是否为空 if(cmsPage == null){ //抛出异常,非法请求 //... } //根据页面名称查询(页面名称已在mongodb创建了唯一索引) CmsPage cmsPage1 = cmsPageRepository.findByPageNameAndSiteIdAndPageWebPath(cmsPage.getPageName(), cmsPage.getSiteId(), cmsPage.getPageWebPath()); //校验页面是否存在,已存在则抛出异常 if(cmsPage1 !=null){ //抛出异常,已存在相同的页面名称 //... } cmsPage.setPageId(null);//添加页面主键由spring data 自动生成 CmsPage save = cmsPageRepository.save(cmsPage); //返回结果 CmsPageResult cmsPageResult = new CmsPageResult(CommonCode.SUCCESS,save); return cmsPageResult; }
转载于:https://blog.51cto.com/13517854/2338157