学成在线--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.mzph.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表示城市大小&…