Primeiro de tudo, precisamos deixar claro que a caixa de pesquisa é uma solicitação GET com base na pesquisa de palavras -chave e a solicitação GET é enviada para a página atual.
//The request path for the sample code is the current page path "/product" <!-- Search box get request to search based on the keyword of the product name--><form action="/product" > <input type="text" name="productName" placeholder="product name" value="${param.productName}"> <button><i></i></button></form>Quando queremos implementar a função de pesquisa de várias condições, podemos encapsular as condições de pesquisa em uma coleção de mapas e pesquisa com base na coleção de mapas
Código da camada do controlador:
@GetMapping ("/Product") Lista de string pública (@RequestParam (requerir = false, defaultValue = "1", name = "p") Pageno inteiro, @RequestParam (requerido = false, defaultValue = "") stringname, @RequestParam (requerido = false = defaultValue = "") string, stringname, @RequestParam (False = defaultValue = "") @RequestParam (requerido = false, defaultValue = "") BigDecimal minprice, @RequestParam (requerir = false, defaultValue = "") BigDecimal maxPrice, modelo modelo) {map <string, object> searchparam = new hashmap <> (); SearchParam.put ("PRODUTNAME", PRODUCTNAME); SearchParam.put ("Place", local); SearchParam.put ("typeId", typeId); SearchParam.put ("MinPrice", MinPrice); SearchParam.put ("MaxPrice", MaxPrice); PageInfo <Kaola> PageInfo = kaolaservice.findbypageno (Pageno, SearchParam); Model.Addattribute ("PageInfo", PageInfo); retornar "Produto/Lista"; }Código da camada de negócios:
public PageInfo <Kaola> findBypageno (Pageno inteiro, mapa <string, object> SearchParam) {PageHelper.StartPage (Pageno, 10); Lista <Kaola> kaolalist = kaolamapper.findbysearchParamWithType (SearchParam); Retorne o novo PageInfo <> (Kaolalist);}mappper.xml em mybatis:
<select id = "findBysearchParamwithType" resultType = "com.kaisishengit.entity.kaola"> selecione Kaola. Junte -se a kaola_type em kaola.type_id = kaola_type.id <where> <if test = "productName! #{Place} </if> <if test = "typeId! = null e typeId! = ''"> e kaola.type_id = #{typeid} </if> <if test = "minprice! = null e minprice! ! = null e maxprice! = '' "> <! [CDATA [e KAOLA.PRICE <= #{maxPrice}]]> </if> </where> encomendar por kaola.id desc </leclect>Dessa forma, você pode implementar a função de pesquisa de várias condições do front-end para o back-end. Também encontraremos uma situação em que, ao inserir condições de pesquisa, a lista de exibição será automaticamente atualizada. Isso realmente usa conteúdo relacionado ao AJAX. Durante o processo de entrada, as solicitações do AJAX serão emitidas continuamente e a página será atualizada.
<input type="text" name="productName" placeholder="商品名称" value="${param.productName}"> é obter o valor dos parâmetros do URL da solicitação e realizar a função de atualizar a página para exibir palavras -chave após inserir a pesquisa de palavras -chave. A imagem está diretamente acima:
value="${param.productName}"
Ao inserir palavras -chave chinesas para pesquisa, você pode usar o Encodeuricomponent para resolver o problema de exibir o código ilegal chinês no caminho da URL:
// paginação $ ('#paginação-demo'). Twbspagination ({totalpages: $ {PageInfo.Pages}, VisiblePages: 10, primeiro: 'Home', Last: 'Last:' Last Page ', Anterior:' Página anterior ', Próxima:' Next Page ',' Page ',' href: "? ProductName ="+Encodeuricomponent ('$ {param.productName}')+"& place ="+codeuricomponent ('$ {param.place}')+ "& typeId = $ {param.typeid} & minprice = $ {param.minPrice} & maxprice = $ {param.maxprice} & p = {{number}}"});Clique para ver a imagem maior
Resultados da pesquisa
Resumir
O exposto acima é uma explicação detalhada do código da função de pesquisa de implementação Java introduzido pelo editor. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!