Прежде всего, мы должны прояснить, что поле поиска - это запрос GET, основанный на поиске ключевых слов, а запрос GET отправляется на текущую страницу.
// Путь запроса для образца кода-это текущий путь страницы "/Product" <!-поле поиска Получить запрос на поиск на основе ключевого слова имени продукта-> <form action = "/product"> <input type = "text" name = "productName" Placeholder = "name" value = "$ {param.productName}"> <Tupport> </i> </i> </i> </i> </i> </i> </i> </i> </i> </i> </i>Когда мы хотим реализовать функцию поиска с несколькими кондиционерами, мы можем инкапсулировать условия поиска в коллекцию карт и поиск на основе коллекции карт
Код уровня контроллера:
@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 (обязательный = false, defaultValue =" ") BigDecimal MinPrice, @RequestParam (обязательный = false, defaultValue =" ") BigDecimal MaxPrice, Model Model) {map <String> searchParam = new Hashmap <> (); SearchParam.put ("ProductName", ProductName); SearchParam.put («место», место); searchparam.put ("typeid", typeid); SearchParam.put ("minprice", minprice); searchParam.put ("maxprice", maxprice); PageInfo <kaola> pageinfo = kaolaservice.findbypageno (Pageno, SearchParam); model.addattribute ("pageInfo", pageInfo); вернуть "продукт/список"; }Код бизнес -уровня:
public pageinfo <kaola> findbypageno (Integer pageno, map <string, object> searchParam) {pageHelper.StartPage (pageno, 10); Список <Kaola> kaolalist = kaolamapper.findbysearchparamwithtype (searchParam); вернуть новый pageinfo <> (kaolalist);}mappper.xml в mybatis:
<select id = "findbysearchParamWithType" refultype = "com.kaishengit.entity.kaola"> select kaola.*, kaola_type.id как 'kaolatype.id', kaola_type.type_name как 'kaolatype.typename Каола внутреннее присоединение kaola_type on kaola.type_id = kaola_type.id <где> <if test = "productname! = null и productname! = ''"> kaola.product_name like concat ('%',#{productName}, '%') </if> <if> <if step = naul! kaola.place = #{place} </if> <if test = "typeid! = null и typeid! = ''"> и kaola.type_id = #{typeid} </if> <if test = "minprice! = null и minprice! = '' '> <! [cdata [и kaola. test = "maxprice! = null и maxprice! = ''"> <! [cdata [и kaola.price <= #{maxprice}]]> </if> </where> order by kaola.id desc </select>Таким образом, вы можете реализовать функцию поиска с несколькими кондиционерами от переднего конца до конца. Мы также столкнемся с ситуацией, когда при входе в условия поиска список отображения будет автоматически обновлен. Это на самом деле использует контент, связанный с AJAX. Во время процесса ввода запросы AJAX будут постоянно выдаваться, а страница будет обновлена.
<input type="text" name="productName" placeholder="商品名称" value="${param.productName}"> - это получить значение из параметров URL -адреса запроса и реализовать функцию обновления страницы для отображения ключевых слов после ввода поиска ключевых слов. Изображение прямо выше:
value="${param.productName}"
При вводе китайских ключевых слов для поиска вы можете использовать Encodeuricomponent для решения проблемы отображения искаженного кода Китая в пути URL:
// страница $ ('#pagination-demo'). Wbspagination ({totalPages: $ {pageInfo.pages}, VisiblePages: 10, First: «Home ', Last:« Последняя страница »,« Предыдущая:' предыдущая страница », следующая:« Следующая страница », href: "? ProductName ="+encodeuricomponent ('$ {param.productname}')+"& place ="+encodeuricomponent ('$ {param.place}')+ "& typeid = $ {param.typeid} & minprice = $ {param.minprice} & maxprice = $ {param.maxprice} & p = {{number}}"});Нажмите, чтобы просмотреть более широкое изображение
Результаты поиска
Суммировать
Выше приведено подробное объяснение кода функции поиска реализации Java, введенного редактором. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!