ก่อนอื่นเราต้องชัดเจนว่าช่องค้นหาเป็นคำขอ GET ตามการค้นหาคำหลักและคำขอ GET จะถูกส่งไปยังหน้าปัจจุบัน
// เส้นทางคำขอสำหรับโค้ดตัวอย่างคือพา ธ หน้าปัจจุบัน "/product" <!-กล่องค้นหารับคำขอค้นหาตามคำหลักของชื่อผลิตภัณฑ์-> <form action = "/product"> <input type = "text" name = "productName" placeholder = "ชื่อผลิตภัณฑ์" value = "$ {param.productName}"เมื่อเราต้องการใช้ฟังก์ชั่นการค้นหาหลายเงื่อนไขเราสามารถห่อหุ้มเงื่อนไขการค้นหาลงในคอลเลกชันแผนที่และค้นหาตามคอลเลกชันแผนที่
รหัสเลเยอร์คอนโทรลเลอร์:
@getMapping ("/product") รายการสตริงสาธารณะ (@requestparam (จำเป็น = false, defaultValue = "1", name = "p") integer pageno, @requestparam (จำเป็น = false, defaultValue = ") productname @requestparam typeId, @requestparam (จำเป็น = false, defaultValue = "") minPrice bigDecimal, @RequestParam (จำเป็น = false, defaultValue = "") bigDecimal maxPrice, โมเดลโมเดล) {แผนที่ <สตริง SearchParam.put ("ProductName", ProductName); SearchParam.put ("สถานที่", สถานที่); SearchParam.put ("typeId", typeId); SearchParam.put ("MINPRICE", MINPRICE); SearchParam.put ("MaxPrice", MaxPrice); PageInfo <Caola> pageinfo = kaolaservice.findbypageno (Pageno, SearchParam); model.addattribute ("PageInfo", PageInfo); ส่งคืน "ผลิตภัณฑ์/รายการ"; -รหัสเลเยอร์ธุรกิจ:
หน้าสาธารณะ <Kaola> findBypageno (จำนวนเต็ม pageno, แผนที่ <สตริง, วัตถุ> SearchParam) {pageHelper.startPage (Pageno, 10); รายการ <Kaola> kaolalist = kaolamapper.findbysearchparamwithtype (SearchParam); ส่งคืน Pageinfo ใหม่ <> (kaolalist);}mappper.xml ใน mybatis:
<select id = "findBySearchParamWithType" resultType = "com.kaishengit.entity.kaola"> เลือก kaola.*, kaola_type.id เป็น 'kaolatype.id', kaola_type.type_name Kaola เข้าร่วม kaola_type บน kaola.type_id = kaola_type.id <โดยที่> <ถ้า test = "productname! = null และ productname! = ''"> kaola.product_name ชอบ concat ('%',#{productname} kaola.place = #{place} </if> <ถ้า test = "typeId! = null และ typeId! = ''"> และ kaola.type_id = #{typeId} </ถ้า> <ถ้า test = "minprice! = null และ minprice! = '' '> <cdata test = "maxprice! = null และ maxprice! = '' ''> <! [cdata [และ kaola.price <= #{maxprice}]]> </ถ้า>ด้วยวิธีนี้คุณสามารถใช้ฟังก์ชั่นการค้นหาหลายเงื่อนไขจากส่วนหน้าไปยังส่วนหลัง นอกจากนี้เรายังจะพบกับสถานการณ์ที่เมื่อเข้าสู่เงื่อนไขการค้นหารายการแสดงผลจะได้รับการรีเฟรชโดยอัตโนมัติ สิ่งนี้ใช้เนื้อหาที่เกี่ยวข้องกับ AJAX ในระหว่างกระบวนการป้อนข้อมูลคำขอ AJAX จะออกอย่างต่อเนื่องและหน้าจะได้รับการรีเฟรช
<input type="text" name="productName" placeholder="商品名称" value="${param.productName}"> คือการรับค่าจากพารามิเตอร์ของ URL คำขอและตระหนักถึงฟังก์ชั่นของการรีเฟรชหน้าเพื่อแสดงคำหลักหลังจากเข้าสู่การค้นหาคำหลัก ภาพอยู่ด้านบนโดยตรง:
value="${param.productName}"
เมื่อป้อนคำหลักของจีนสำหรับการค้นหาคุณสามารถใช้ encodeuricomponent เพื่อแก้ปัญหาการแสดงรหัสภาษาจีนที่อ่านไม่ออกในเส้นทาง URL:
// pagination $ ('#pagination-demo'). twbspagination ({totalPages: $ {pageinfo.pages}, VisiblePages: 10, แรก: 'home', สุดท้าย: 'สุดท้าย:' หน้าสุดท้าย ', ก่อนหน้า:' หน้าก่อนหน้า ', ถัดไป:' หน้าถัดไป ' href: "? productName ="+encodeUricomponent ('$ {param.productName}')+"& place ="+encodeuricomponent ('$ {param.place}')+ "& typeId = $ {param.typeId} & minPrice = $ {param.minPrice} & maxPrice = $ {param.maxPrice} & p = {{number}}"});คลิกเพื่อดูภาพขนาดใหญ่
ผลการค้นหา
สรุป
ข้างต้นเป็นคำอธิบายโดยละเอียดของรหัสฟังก์ชั่นการค้นหาการใช้งาน Java ที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!