博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java的新项目学成在线笔记-day3(九)
阅读量:7040 次
发布时间:2019-06-28

本文共 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

你可能感兴趣的文章
redis集群搭建
查看>>
MongoDB分片搭建
查看>>
TurboMail为企业选择邮件服务器支招
查看>>
TurboMail邮件服务器为您解疑为何收发邮件不畅通
查看>>
给想立志入行网络或已经初入行的朋友的建议
查看>>
Flink 原理与实现:Window 机制
查看>>
第一讲 scala开发环境搭建
查看>>
MySQL簇的安装及配置
查看>>
screen命令的用法
查看>>
看程序员是如何把自动化做到极致的!
查看>>
MySQL性能优化的21条最佳经验
查看>>
Lua 学习记录
查看>>
关于linux批量改文件名问题
查看>>
SOLR组合条件查询
查看>>
CentOS6.x升级到7
查看>>
使用 Buildot 实现持续集成(转载)
查看>>
IE6兼容性大全
查看>>
ExtJS2.0实用简明教程 - ExtJS版的Hello
查看>>
开源文化,小谈
查看>>
Liferay7的环境搭建
查看>>