首頁(yè)技術(shù)文章正文

Java的新項(xiàng)目學(xué)成在線筆記-刪除頁(yè)面

更新時(shí)間:2019-01-10 來源:黑馬程序員 瀏覽量:

 
用戶操作流程:
1、用戶進(jìn)入用戶列表,點(diǎn)擊“刪除”
2、執(zhí)行刪除操作,提示“刪除成功”或“刪除失敗” 
  4.1 刪除頁(yè)面接口定義 
[AppleScript] 純文本查看 復(fù)制代碼
1
2
@ApiOperation("通過ID刪除頁(yè)面")
 public ResponseResult delete(String id);

4.2 刪除頁(yè)面服務(wù)端開發(fā) 
4.2.1Dao 
使用 Spring Data提供的deleteById方法完成刪除操作 。
4.2.2 Service 
[AppleScript] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
//刪除頁(yè)面  
  public ResponseResult delete(String id){   
     CmsPage one = this.getById(id);    
    if(one!=null){     
       //刪除頁(yè)面    
        cmsPageRepository.deleteById(id);       
     return new ResponseResult(CommonCode.SUCCESS);     
   }     
   return new ResponseResult(CommonCode.FAIL);    
}

4.2.3Controller 
[AppleScript] 純文本查看 復(fù)制代碼
1
2
3
4
@DeleteMapping("/del/{id}") //使用http的delete方法完成崗位操作
 public ResponseResult delete(@PathVariable("id") String id) {
   return pageService.delete(id);
}

4.3 刪除頁(yè)面前端開發(fā) 
4.3.1 Api方法 
[AppleScript] 純文本查看 復(fù)制代碼
1
2
3
/*頁(yè)面刪除*/ export const page_del = id => {
   return http.requestDelete(apiUrl+'/cms/page/del/'+id)
 }

4.3.2編寫頁(yè)面 
1、在page_list.vue頁(yè)面添加刪除按鈕
[AppleScript] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
<el‐table‐column label="操作" width="120">  
     <template slot‐scope="page">
        <el‐button   
        size="small"type="text"     
      @click="edit(page.row.pageId)">編輯     
    </el‐button>     
    <el‐button       
    size="small"type="text"   
        @click="del(page.row.pageId)">刪除   
      </el‐button>   
    </template>  
   </el‐table‐column>

2、刪除事件

[AppleScript] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
//刪除 
      del:function (pageId) {      
   this.$confirm('確認(rèn)刪除此頁(yè)面嗎?', '提示', {}).then(() => {
           cmsApi.page_del(pageId).then((res)=>{    
         if(res.success){    
           this.$message({       
          type: 'success',        
        message: '刪除成功!'    
           });     
          //查詢頁(yè)面 
              this.query()   
          }else{       
        this.$message({   
              type: 'error',  
               message: '刪除失敗!' 
              });     
       }       
    })     
      })
      }

5 異常處理 5.1 異常處理的問題分析 
從添加頁(yè)面的service方法中找問題:

[AppleScript] 純文本查看 復(fù)制代碼
1
2
3
4
//添加頁(yè)面 
   public CmsPageResult add(CmsPage cmsPage){ //校驗(yàn)頁(yè)面是否存在,
根據(jù)頁(yè)面名稱、站點(diǎn)Id、頁(yè)面webpath查詢        
        CmsPage cmsPage1 =

[AppleScript] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
cmsPageRepository.findByPageNameAndSiteIdAndPageWebPath(cmsPage.getPageName(),  cmsPage.getSiteId(), cmsPage.getPageWebPath());  
       if(cmsPage1==null){   
         cmsPage.setPageId(null);
//添加頁(yè)面主鍵由spring data 自動(dòng)生成    
        cmsPageRepository.save(cmsPage)
           //返回結(jié)果        
    CmsPageResult cmsPageResult = new CmsPageResult(CommonCode.SUCCESS,cmsPage);      
      return cmsPageResult; 
       }    
    return new CmsPageResult(CommonCode.FAIL,null)
   }

問題:
1、上邊的代碼只要操作不成功僅向用戶返回“錯(cuò)誤代碼:11111,失敗信息:操作失敗”,無法區(qū)別具體的錯(cuò)誤信 息。
2、service方法在執(zhí)行過程出現(xiàn)異常在哪捕獲?在service中需要都加try/catch,如果在controller也需要添加 try/catch,代碼冗余嚴(yán)重且不易維護(hù)。
解決方案:
1、在Service方法中的編碼順序是先校驗(yàn)判斷,有問題則拋出具體的異常信息,最后執(zhí)行具體的業(yè)務(wù)操作,返回成 功信息。
2、在統(tǒng)一異常處理類中去捕獲異常,無需controller捕獲異常,向用戶返回統(tǒng)一規(guī)范的響應(yīng)信息。
代碼模板如下:

[AppleScript] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
//添加頁(yè)面 public CmsPageResult add(CmsPage cmsPage){
   //校驗(yàn)cmsPage是否為空  
  if(cmsPage == null){    
    //拋出異常,非法請(qǐng)求   
     //... 
   }   
 //根據(jù)頁(yè)面名稱查詢(頁(yè)面名稱已在mongodb創(chuàng)建了唯一索引)  
 CmsPage cmsPage1 =  cmsPageRepository.findByPageNameAndSiteIdAndPageWebPath(cmsPage.getPageName(),  cmsPage.getSiteId(), cmsPage.getPageWebPath())
   //校驗(yàn)頁(yè)面是否存在,已存在則拋出異常 
   if(cmsPage1 !=null){    
    //拋出異常,已存在相同的頁(yè)面名稱   
     //... 
   }    
cmsPage.setPageId(null);//添加頁(yè)面主鍵由spring data 自動(dòng)生成  
  CmsPage save = cmsPageRepository.save(cmsPage);
    //返回結(jié)果 
   CmsPageResult cmsPageResult = new CmsPageResult(CommonCode.SUCCESS,save)
   return cmsPageResult; }

                                 

作者:黑馬程序員JavaEE培訓(xùn)學(xué)院
首發(fā):http://java.itheima.com/

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!