综合案例(需求分析和准备工作) | 学习笔记

简介: 快速学习综合案例(需求分析和准备工作)。

开发者学堂课程【Lucene知识精讲与实战(下)综合案例(需求分析和准备工作)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/701/detail/12346


综合案例(需求分析和准备工作)

 

1利用综合案例把关于 lucene 所有的知识进行整体的回顾并且在实际场景中使用

2、在页面头部部分有输入框,输入关键字,有搜索按钮,当输入需要查询的关键字之后,点击搜索按钮被搜寻出来,中间有价格,价格是区间范围,通过关键字查询的同时还要根据价格进行查询,右边有分页,上一页,下一页,展示总页数,当前页,一共查询到多少条数。

6.1.png

3lucenedemo 小项目中完成,打开 pom.xml 配置文件,导入需要的 ja包,不用复制粘贴文档中的依赖,因为 pom.xml 中都有,

commons-iolucene 核心包,lucene 分支器包,产品包,lucene 查询包,测试包,数据库驱动包,ik中文分词器包,有关于 springboot web 启动器,有thymeleaf 做页面的技术,json转换。

4、resources 中创建背景文件。

6.2.png

application.yml

6.3.png

5、创建完可以看到绿色小叶子图标。文件名必须是 application.yml因为是springboot 项目。

 

6.4.png

6关闭 thymeleaf 缓存。

spring:

thymeleaf:

cache:false

如果不关闭缓存,在查询时,查询一遍没问题,再查询一遍就会有问题,因为数据可能被缓存上。

7、java中有项目启动类,创建 class

6.5.png

application

6.6.png

8、Application.java中加spingboot注解,

@SpringBootApplication

public class Application {

public static void main(String[] args){

SpringApplication.run(Application.class, args);

}

}

通过这个类可以启动项目。

9、有 pojodao再创建两个包,controller

6.7.png

再创建一个包 service

6.8.png

10pojo 中创建一个实体类 ResultModel ,做分页用,用自己封装的ResultModelskulist代表查询到的列表结果集,recordcount 代表查询到的商品总数,pagecount 总页数,curpage 当前页。

6.9.png

//商品列表

private List skuList;

//商品总数

private Long recordCount;

//总页数

private Long pageCount;

//当前页

private long curPage;

Out generate 设置键,生成 Generate Getters and Setters 方法。

6.10.png

自定义分页实体类,分页用的。

11、Controller 下创建 classSearchController

6.11.png

@controller加注解,返回页面

@RequestMapping("/list" )表明类上访问yl路径

12、service 中写具体查询业务,创建接口 SearchService

6.13.png

13、在 service 中创建实现类 SearchServiceimpl实现 SearchService

6.12.png

表明它是 service 实现类。

@Service

public class SearchServiceimpl implements SearchService {

}

14、在 lucene 资源里面有页面。

6.14.png

点击页面和静态资源。6.15.png

把两个包复制到项目 resources 下。

6.16.png

15、里面是它需要的 css.js,图片和页面。页面是 search.html

6.17.png

16、打开 search.html 可以看到搜索框,from 表单中 post 请求的提交,提交的路径是list,输入关键字的输入框,name属性名是 querystring${querystring} 表达式是做查询之后回显。当鼠标单机搜索按钮时触 发query 方法,在 query 方法中获取价格,获取当前页,清空。

//执行关键词查询时清空过滤条件

document . getEiementById("price").value="";

document . getEiementById( "page") . value="";

原因搜索关键字手机,出现结果,比如换关键字台灯,再搜索,搜索出的跟上一个搜索没有关系,所以要把价格和当前页都清空。

querlis tactionform 表单进行提交,


< input type= "button" value= "搜索" class= "button"

onclick="query()">


value 做上一个条件数据的条件回显。

查询价格根据范围进行查询,没点击某一个价格,它会触发filter方法,传进去两个参数,一个参数叫 price ,第二个是价格范围值

  • 0-50e
  • 500-1000
  • 5000' )">1000-5000/li>

  • 5000- 10000
  • 10000- 50000
  • 50000- 100000
  • filtervalue 是价格范围,找到 keykey 传进来是 price,给隐藏域赋值 value参数,value 参数传进来。给 price 赋值0-500

    //keyprice, value: 0-500

    function filter(key, value) {

    document . gwtEiementById(key) . value=value;

    queryList();  actionform方法,表单重新提交重新发送

    }

    17${price} 参与条件回显,赋值的原因是在页面刚进来时,第一次输入关键字,点击搜索时,价格值是空的,再选择某一价格时,价格才会被选中,选中之后触发js方法给下面的域赋值,提交表单,价格值才会传到 controller 方法中,介绍到值并且查询结果返回到列表页面进行展示,对于查询条件在翻页时也要有,如果价格在500-1000,翻下一页,下一页查询出的数据也在500-1000内,所以查询条件要一直带着,所以通过${querystring}表达式进行回显,之后写 controller service

    相关文章
    |
    数据可视化 前端开发 测试技术
    软件需求分析实践——需求拆分| 学习笔记
    快速学习软件需求分析实践——需求拆分
    软件需求分析实践——需求拆分| 学习笔记
    |
    Linux 调度
    在Linux中,任务计划格式中,前面5个数字分表表示什么含义?
    在Linux中,任务计划格式中,前面5个数字分表表示什么含义?
    |
    数据采集 消息中间件 分布式计算
    系统架构+技术选型+用例说明|学习笔记
    快速学习系统架构+技术选型+用例说明
    系统架构+技术选型+用例说明|学习笔记
    |
    UED
    产品服务需求分析与概念设计阶段
    产品服务需求分析与概念设计阶段
    373 3
    |
    机器学习/深度学习 数据可视化 Docker
    Python环境
    Python环境
    280 3
    |
    测试技术 数据安全/隐私保护 Java
    基于SpringBoot+Vue+uniapp的学生网上请假系统的详细设计和实现(源码+lw+部署文档+讲解等)
    基于SpringBoot+Vue+uniapp的学生网上请假系统的详细设计和实现(源码+lw+部署文档+讲解等)
    179 2
    |
    存储 安全 物联网
    车联网进入爆发前夜,谁能助车企完成“最后的冲刺”?
    车联网进入爆发前夜,谁能助车企完成“最后的冲刺”?
    268 0
    |
    UED 开发者
    构建可访问的自定义表单控件
    在现代Web应用程序中,表单是一个至关重要的组件。用户可以通过表单输入数据并与应用程序进行交互。为了提高用户体验,并让所有用户都能轻松地使用您的应用程序,构建可访问的自定义表单控件是非常重要的。
    285 0
    |
    Serverless 数据库 小程序
    敢,就来battle!云开发校园合伙人公演ing
    云开发校园合伙人成团在即,创造营进入项目实战和公演阶段了。基于云开发平台开发任意形式的Web应用,提交可以获得50元无门槛代金券和参与合伙人的项目选拔排名,50位合伙人证书和各种权益,以及10位实习生面试名额等你来战。少年们,加油!
    5275 0
    敢,就来battle!云开发校园合伙人公演ing
    |
    运维 Ubuntu Linux
    在Ubuntu中安装Samba文件服务
    Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能。
    338 0