简单搜索功能的实现

利用Mybatis的动态sql

数据库正则查找Regx |

前端将搜索内容发送到后端

<form class="navbar-form navbar-left" action="/" method="get">    
    <div class="form-group">        
    	<input type="text" class="form-control" name="search" placeholder="搜索问题"> </div>    
    <button type="submit" class="btn btn-default">搜索</button></form>


当并没有进行搜索时,即search==null,这时候正常显示页面。
<ul class="pagination" th:if="${search==null}">

当进行搜索时,即search!=null,这时候显示与搜索问题相关的页面,与此同时,翻页时也将search加入地址。   
<ul class="pagination" th:if="${search!=null}">    
<a th:href="@{/(page=${page},search=${search})}" th:text="${page}">

后端处理思路

//拿到页面传来的请求搜索内容
@RequestParam(name = "search",required = false) String  search
    
//进行搜索    
PagesDTO pagesDTO = questionService.list(search,page,size);

//将拿到的内容设置成 sql正则表达式中的样子(REGEXP)
if (StringUtils.isNotBlank(search)){
            String[] strings = StringUtils.split(search," ");
            search = Arrays.stream(strings).collect(Collectors.joining("|"));

        }

//将页面信息page,size以及search封装成QuestionQueryDTO,以便信息的拿取
    
//利用自定义的动态sql来拿到查找问题数目
Integer totalcount = extMapper.countBySearch(questionQueryDTO);

//拿到问题列表
List<Question> questions = extMapper.selectByearch(questionQueryDTO);

//将拿到的问题列表以及search返回到页面
model.addAttribute("pagesDTO", pagesDTO);
model.addAttribute("search", search);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值