學成在線--3.CMS頁面管理開發(自定義條件查詢)

文章目錄

    • 0.需求分析
    • 1.服務端--Dao
    • 2.服務端--Service
    • 3.服務端--Controller
    • 4.前端
      • 1)page_list.vue中增加查詢表單
      • 2)page_list.vue中添加數據模型對象
      • 3)在鉤子方法中構建siteList站點列
    • 5.Api調用
      • 1)修改 cms.js,向服務端傳遞查詢條件
      • 2)page_list.vue中頁面調用api中的方法

0.需求分析

在頁面輸入查詢條件,查詢符合條件的頁面信息。
查詢條件如下:
站點Id:精確匹配
模板Id:精確匹配
頁面別名:模糊匹配

在這里插入圖片描述
在這里插入圖片描述

1.服務端–Dao

使用 CmsPageRepository中的findAll(Example var1, Pageable var2)方法實現,無需定義

下邊測試findAll方法實現自定義條件查詢:

//自定義條件查詢測試
@Test
public void testFindAll() {
//條件匹配器
ExampleMatcher exampleMatcher = ExampleMatcher.matching();
exampleMatcher = exampleMatcher.withMatcher("pageAliase",
ExampleMatcher.GenericPropertyMatchers.contains());
//頁面別名模糊查詢,需要自定義字符串的匹配器實現模糊查詢
//ExampleMatcher.GenericPropertyMatchers.contains() 包含
//ExampleMatcher.GenericPropertyMatchers.startsWith()//開頭匹配
//條件值
CmsPage cmsPage = new CmsPage();
//站點ID
cmsPage.setSiteId("5a751fab6abb5044e0d19ea1");
//模板ID
cmsPage.setTemplateId("5a962c16b00ffc514038fafd");
// cmsPage.setPageAliase("分類導航");
//創建條件實例
Example<CmsPage> example = Example.of(cmsPage, exampleMatcher);
Pageable pageable = new PageRequest(0, 10);
Page<CmsPage> all = cmsPageRepository.findAll(example, pageable);
System.out.println(all);
}

2.服務端–Service

在PageService的findlist方法中增加自定義條件查詢代碼

/**
* 頁面列表分頁查詢
* @param page 當前頁碼
* @param size 頁面顯示個數
* @param queryPageRequest 查詢條件
* @return 頁面列表
*/
public QueryResponseResult findList(int page,int size,QueryPageRequest queryPageRequest){
//條件匹配器
//頁面名稱模糊查詢,需要自定義字符串的匹配器實現模糊查詢
ExampleMatcher exampleMatcher = ExampleMatcher.matching()
.withMatcher("pageAliase", ExampleMatcher.GenericPropertyMatchers.contains());
//條件值
CmsPage cmsPage = new CmsPage();
//站點ID
if(StringUtils.isNotEmpty(queryPageRequest.getSiteId())){
cmsPage.setSiteId(queryPageRequest.getSiteId());
} /
/頁面別名
if(StringUtils.isNotEmpty(queryPageRequest.getPageAliase())){
cmsPage.setPageAliase(queryPageRequest.getPageAliase());
} /
/創建條件實例
Example<CmsPage> example = Example.of(cmsPage, exampleMatcher);
//頁碼
page = page‐1;
//分頁對象
Pageable pageable = new PageRequest(page, size);
//分頁查詢
Page<CmsPage> all = cmsPageRepository.findAll(example,pageable);
QueryResult<CmsPage> cmsPageQueryResult = new QueryResult<CmsPage>();
cmsPageQueryResult.setList(all.getContent());
cmsPageQueryResult.setTotal(all.getTotalElements());
//返回結果
return new QueryResponseResult(CommonCode.SUCCESS,cmsPageQueryResult);
}

3.服務端–Controller

在這里插入圖片描述

4.前端

1)page_list.vue中增加查詢表單

文件名:page_list.vue
在這里插入圖片描述

<!‐‐查詢表單‐‐>
<el‐form :model="params">
<el‐select v‐model="params.siteId" placeholder="請選擇站點">
<el‐option
v‐for="item in siteList"
:key="item.siteId"
:label="item.siteName"
:value="item.siteId">
</el‐option>
</el‐select>
頁面別名:<el‐input v‐model="params.pageAliase" style="width: 100px"></el‐input>
<el‐button type="primary" v‐on:click="query" size="small">查詢</el‐button>
</el‐form>

2)page_list.vue中添加數據模型對象

文件名:page_list.vue

增加siteList、pageAliase、siteId,如下:
在這里插入圖片描述

3)在鉤子方法中構建siteList站點列

文件名:page_list.vue
在這里插入圖片描述

5.Api調用

1)修改 cms.js,向服務端傳遞查詢條件

在這里插入圖片描述

2)page_list.vue中頁面調用api中的方法

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452277.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452277.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452277.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

動態生成表格、隱藏表格、選中刪除任意行、jquery、輸入驗證

PS&#xff1a; 游戲公司后臺開發&#xff0c;工作模式&#xff1a;996。 于是寫博客這事也荒廢了.... 想想還是寫一點吧。 呵呵&#xff0c;請不要笑話我注釋寫這么多&#xff0c;習慣了&#xff0c;我上班寫代碼都是有注釋的。 我建兩個相似的表是為了&#xff0c;給后臺使…

安裝 PrestaShop 1.6 - 詳細的安裝指南

2019獨角獸企業重金招聘Python工程師標準>>> 詳細的安裝指南 下載和解壓 PrestaShop 程序代碼包 你可以從 PrestaShop 官方下載最新的版本&#xff0c;下載地址為&#xff1a;http://www.prestashop.com/en/download. 這里你只有一個選項&#xff0c;只能下載最新的…

tinydate.js[v0.3] 新增了字符串格式化為日期對象的函數

更新說明 加入了String類型的擴展成員 convertToDate() 可以直接將 字符串格式的日期轉換為Date對象。加入了String類型的擴展成員 convertToTimeSpan() 可以將 字符串格式的日期轉換為TimeSpan對象。修復了日期格式化為字符串的format函數中的bug。tinydate.js v0.3 Date.prot…

面向對象方法學的四個要點

面向對象方法學的要點面向對象方法學的出發點和基本原則&#xff0c;是盡可能模擬人類習慣的思維方式&#xff0c;使開發軟件的方法與過程盡可能接近人類認識世界解決問題的方法與過程&#xff0c;也就是使描述問題的問題空間(也稱為問題域)與實現解法的解空間(也稱為求解域)在…

學成在線--4.CMS頁面管理開發(新增頁面)

文章目錄1.定義新增頁面接口1&#xff09;在model工程中定義響應模型2&#xff09;在api工程中添加接口2.新增頁面服務端開發1&#xff09;Dao2&#xff09;Service3&#xff09;Controller3.新增頁面前端開發1&#xff09;創建page_add.vue2&#xff09;配置路由3&#xff09;…

嵌套For循環性能優化

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。1 案例描述某日&#xff0c;在JavaEye上看到一道面試題&#xff0c;題目是這樣的&#xff1a;請對以下的代碼進行優化 Java代碼 for (int …

docker-ce安裝

1、安裝 sudo yum -y install docker 2、加入開機自啟systemctl enable docker轉載于:https://www.cnblogs.com/runnerjack/p/8618524.html

python-study-17

復習 上節課復習1、什么是模塊模塊是一系列功能的集合體2、為何用模塊拿來&#xff08;內置或第三方的模塊&#xff09;主義&#xff0c;提升開發效率自定義模塊可以讓程序的各部分組件重用模塊內的功能3、如何用模塊大前提&#xff1a;模塊是被執行文件導入使用&#xff0c;模…

面向對象方法學的優點

1.與人類習慣的思維方法一致面向對象的軟件技術以對象為核心&#xff0c;用這種技術開發出的軟件系統由對象組成。對象是由描述內部狀態表示靜態屬性的數據&#xff0c;以及可以對這些數據施加的操作(對象的動態行為)&#xff0c;封裝在一起所構成的統一體。面向對象的設計方法…

如何學好C語言

我相信&#xff0c;這可能是很多朋友的問題&#xff0c;我以前也有這樣的感覺&#xff0c;編程編到一定的時候&#xff0c;發現能力到了瓶頸&#xff0c;既不深&#xff0c;也不扎實&#xff0c;半吊子。比如&#xff1a;你長期地使用Java和.NET &#xff0c;這些有虛擬機的語言…

學成在線--5.CMS頁面管理開發(修改頁面)

文章目錄1.修改頁面流程1&#xff09;前端邏輯2&#xff09;后端邏輯2.修改頁面接口定義3.后端開發--Dao4.后端開發--Service5.后端開發--Controller1&#xff09;根據id查詢頁面2&#xff09;保存頁面信息6.前端開發--頁面處理流程7.前端開發--編寫page_edit.vue8.前端開發--配…

在樹莓派上播放音頻

https://blog.csdn.net/qinxiandiqi/article/details/39155593轉載于:https://www.cnblogs.com/Baronboy/p/9206164.html

Map四種獲取key和value值的方法,以及對map中的元素排序

2019獨角獸企業重金招聘Python工程師標準>>> 獲取map的值主要有四種方法&#xff0c;這四種方法又分為兩類: 一類是調用map.keySet()方法來獲取key和value的值&#xff0c; 另一類則是通過map.entrySet()方法來取值&#xff0c; 兩者的區別在于&#xff0c;前者主要…

配置Oracle Instant Client環境

1.配置Oracle Instant Client環境 到Oracle官網下載Oracle Instant Client&#xff0c;注意選擇x86平臺&#xff0c;Toad只認32位的Oracle Instant Client。至于版本號&#xff0c;沒有特別要求&#xff0c;版本向下兼容。 桌面上&#xff0c;右鍵點“我的電腦”&#xff0c;選…

學成在線--6.CMS頁面管理開發(刪除頁面)

文章目錄0.刪除用戶邏輯1.刪除頁面接口定義2.后端開發--Dao3.后端開發--Service4.后端開發--controller5.前端開發--page_list.vue添加刪除按鈕6.前端開發--page_list.vue編寫刪除事件7.后端開發--Api方法定義Api方法0.刪除用戶邏輯 1&#xff09;前端邏輯 &#xff08;1&…

諾基亞是“不跟隨”還是跟不上?

在Android和iPhone為主流的環境下&#xff0c;諾基亞用“不跟隨”的口號表明自己欲保持個性&#xff0c;但是否也意味著其固步自封&#xff0c;跟不上時代&#xff1f; 5年市值縮水超900億歐元&#xff0c;全球業績連續4個季度虧損&#xff0c;更為可怕的是&#xff0c;被視為…

HTTP 協議(詳解)

HTTP協議簡介&#xff1a;HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫&#xff0c;是用于萬維網&#xff08;www.world wide web&#xff09;服務器與本地瀏覽器之間傳輸文本的傳輸協議。 http請求協議與相應協議HTTP協議包含瀏覽器發送數據到服務器需要遵循…

對象的特點

對象有如下一些基本特點。(1) 以數據為中心。操作圍繞對其數據所需要做的處理來設置&#xff0c;不設置與這些數據無關的操作&#xff0c;而且操作的結果往往與當時所處的狀態 (數據的值)有關。 (2) 對象是主動的。它是進行處理的主體。不能從外部直接加工它的私有數據&a…

React Native集成Redux框架講解與應用

學過React Native的都知道&#xff0c;RN的UI是根據相應組件的state進行render的&#xff0c;而頁面又是由大大小小的組件構成&#xff0c;導致每個組件都必須維護自身的一套狀態&#xff0c;因此當頁面復雜化的時候&#xff0c;管理state會相當吃力的。而redux提供了一套機制來…

【筆試記錄】2021/3/10阿里

阿里20210310春招筆試記錄-Python解題 第一題 問題描述&#xff1a; 小偷從出發點按指定方向出發&#xff0c;除非遇到墻或超出城市必須轉方向&#xff0c;不然只能直走。城市大小m*n。輸入描述&#xff1a; 1. 第1行&#xff0c;三個數字m n k&#xff1b;m*n表示城市大小&…