Java如何实现搜索功能

这篇文章主要介绍了Java如何实现搜索功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的武侯网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

Java有哪些集合类

Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列:有序,可重复的;3、Set集合:不可重复;4、Map映射:无序,键唯一,值不唯一。

首先,我们要清楚搜索框中根据关键字进行条件搜索发送的是Get请求,并且是向当前页面发送Get请求

//示例代码 请求路径为当前页面路径 "/product" 


  
  

当我们要实现多条件搜索功能时,可以将搜索条件封装为一个Map集合,再根据Map集合进行搜索

Java如何实现搜索功能

Controller层代码:

@GetMapping("/product")
  public String list(@RequestParam(required = false,defaultValue = "1",name = "p")Integer pageNo,
            @RequestParam(required = false,defaultValue = "")String productName,
            @RequestParam(required = false,defaultValue = "")String place,
            @RequestParam(required = false,defaultValue = "")Integer typeId,
            @RequestParam(required = false,defaultValue = "")BigDecimal minPrice,
            @RequestParam(required = false,defaultValue = "")BigDecimal maxPrice,
            Model model) {
    Map searchParam = new HashMap<>();
    searchParam.put("productName",productName);
    searchParam.put("place",place);
    searchParam.put("typeId",typeId);
    searchParam.put("minPrice",minPrice);
    searchParam.put("maxPrice",maxPrice);
    PageInfo pageInfo = kaolaService.findByPageNo(pageNo,searchParam);
    model.addAttribute("pageInfo",pageInfo);
    return "product/list";
  }

业务层代码:

public PageInfo findByPageNo(Integer pageNo, Map searchParam) {
    PageHelper.startPage(pageNo,10);
    List kaolaList = kaolaMapper.findBySearchParamWithType(searchParam);
    return new PageInfo<>(kaolaList);
}

MyBatis中的mapper.xml:


    SELECT
      kaola.*, kaola_type.id AS 'kaolaType.id',
      kaola_type.type_name AS 'kaolaType.typeName',
      parent_id AS 'kaolaType.parentId'
    FROM
      kaola
    INNER JOIN kaola_type ON kaola.type_id = kaola_type.id
    
      
        kaola.product_name LIKE concat('%',#{productName},'%')
      
      
        and kaola.place = #{place}
      
      
        and kaola.type_id = #{typeId}
      
      
        = #{minPrice} ]]>
      
      
        
      
    
    ORDER BY kaola.id DESC

这样,就可以从前端到后端实现多条件搜索功能了。我们还会遇到这样一种情况,在输入搜索条件时,显示列表会不断自动刷新,这里其实用到了Ajax的相关内容,在输入的过程中,会不断发出Ajax请求,然后刷新页面。


value="${param.productName}"
是从请求url的参数中获取值,实现在输入关键字搜索后刷新页面显示关键字这一功能,直接上图:

Java如何实现搜索功能

在输入中文关键字进行搜索时,可以使用encodeURIComponent解决url路径显示中文乱码问题:

//分页
$('#pagination-demo').twbsPagination({
  totalPages: ${pageInfo.pages},
  visiblePages: 10,
  first:'首页',
  last:'末页',
  prev:'上一页',
  next:'下一页',
  href:"?productName="+encodeURIComponent('${param.productName}')+"&place="+encodeURIComponent('${param.place}')
  + "&typeId=${param.typeId}&minPrice=${param.minPrice}&maxPrice=${param.maxPrice}&p={{number}}"
});

Java如何实现搜索功能

点击查看大图

Java如何实现搜索功能

搜索结果

感谢你能够认真阅读完这篇文章,希望小编分享的“Java如何实现搜索功能”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


网站标题:Java如何实现搜索功能
分享链接:http://scyanting.com/article/ghgpsh.html