国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Java實現搜索功能代碼詳解

2024-07-13 10:15:00
字體:
來源:轉載
供稿:網友

首先,我們要清楚搜索框中根據關鍵字進行條件搜索發送的是Get請求,并且是向當前頁面發送Get請求

//示例代碼 請求路徑為當前頁面路徑 "/product" <!-- 搜索框 get請求 根據商品名稱的關鍵字進行搜索--><form action="/product" class="form-inline pull-left" >  <input type="text" name="productName" placeholder="商品名稱" class="form-control" value="${param.productName}">  <button class="btn btn-primary"><i class="fa fa-search"></i></button></form>

當我們要實現多條件搜索功能時,可以將搜索條件封裝為一個Map集合,再根據Map集合進行搜索

java實現搜索功能,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<String,Object> searchParam = new HashMap<>();    searchParam.put("productName",productName);    searchParam.put("place",place);    searchParam.put("typeId",typeId);    searchParam.put("minPrice",minPrice);    searchParam.put("maxPrice",maxPrice);    PageInfo<Kaola> pageInfo = kaolaService.findByPageNo(pageNo,searchParam);    model.addAttribute("pageInfo",pageInfo);    return "product/list";  }

業務層代碼:

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

MyBatis中的mapper.xml:

<select id="findBySearchParamWithType" resultType="com.kaishengit.entity.Kaola">    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    <where>      <if test="productName != null and productName != ''">        kaola.product_name LIKE concat('%',#{productName},'%')      </if>      <if test="place != null and place != ''">        and kaola.place = #{place}      </if>      <if test="typeId != null and typeId != ''">        and kaola.type_id = #{typeId}      </if>      <if test="minPrice !=null and minPrice != ''">        <![CDATA[ and kaola.price >= #{minPrice} ]]>      </if>      <if test="maxPrice !=null and maxPrice != ''">        <![CDATA[ and kaola.price <= #{maxPrice} ]]>      </if>    </where>    ORDER BY kaola.id DESC</select>

這樣,就可以從前端到后端實現多條件搜索功能了。我們還會遇到這樣一種情況,在輸入搜索條件時,顯示列表會不斷自動刷新,這里其實用到了Ajax的相關內容,在輸入的過程中,會不斷發出Ajax請求,然后刷新頁面。

<input type="text" name="productName" placeholder="商品名稱" class="form-control" value="${param.productName}">
value="${param.productName}"
是從請求url的參數中獲取值,實現在輸入關鍵字搜索后刷新頁面顯示關鍵字這一功能,直接上圖:

java實現搜索功能,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,搜索功能

搜索結果

總結

以上所述是小編給大家介紹的Java實現搜索功能代碼詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肥东县| 临城县| 大悟县| 梁平县| 伊宁市| 楚雄市| 博白县| 方山县| 广安市| 景泰县| 东宁县| 栖霞市| 武功县| 永登县| 临桂县| 明星| 全南县| 吉林省| 益阳市| 乌兰察布市| 玉门市| 济阳县| 开鲁县| 遵义市| 微博| 淄博市| 高邮市| 揭阳市| 斗六市| 乌恰县| 武强县| 买车| 南溪县| 扬州市| 阿荣旗| 河东区| 来安县| 娄底市| 囊谦县| 芜湖县| 阳高县|