Zunächst müssen wir klarstellen, dass das Suchfeld eine GET -Anforderung basierend auf der Keyword -Suche ist und die GET -Anforderung an die aktuelle Seite gesendet wird.
//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>Wenn wir die Multi-Konditions-Suchfunktion implementieren möchten, können wir die Suchbedingungen in einer Kartensammlung und -Suche basierend auf der Kartensammlung in Verbindung bringen
Controller -Layer -Code:
@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 typId, @RequestParam (erforderlich = false, defaultValue = ") BigDecimal Minprice, @RequestParam (erforderlich = false, defaultValue =") BigDecimal MaxPrice, Modellmodell) {map <String, Objekt> searchParam = new Hashmap <> (); SearchParam.put ("ProductName", ProductName); SearchParam.put ("Place", Place); SearchParam.put ("typId", typId); SearchParam.put ("Minprice", Minprice); SearchParam.put ("maxprice", maxprice); PageInfo <kaola> pageinfo = kaolaservice.findbypageno (pageno, searchparam); model.addattribute ("pageInfo", pageInfo); Rückgabe "Produkt/Liste"; }Geschäftsschichtcode:
public pageinfo <kaola> findBypageno (Integer pageno, map <String, Objekt> SearchParam) {pageHelper.startPage (pageno, 10); Liste <kaola> kaolalist = kaolamapper.findbysearchParamwithType (SearchParam); Neue PageInfo <> (Kaolalist) zurückgeben;}mappper.xml in mybatis:
<select id = "findBysearchParamwithType" resultType = "com.kaishengit.entity.kaola"> Wählen Sie Kaola. Inner -Joola_type auf kaola.type_id = kaola_type.id <wobei> <if test = "productName! = Null und productName! kaola.Place = #{place} </if> <if test = "typId! = null und typId! test = "maxprice! = null und maxprice!Auf diese Weise können Sie Multi-Konditions-Suchfunktion vom Front-End zum Back-End implementieren. Wir werden auch auf eine Situation stoßen, in der die Anzeigeliste bei der Eingabe von Suchbedingungen automatisch aktualisiert wird. Dies verwendet tatsächlich AJAX -verwandte Inhalte. Während des Eingabevorgangs werden AJAX -Anfragen kontinuierlich ausgestellt und die Seite aktualisiert.
<input type="text" name="productName" placeholder="商品名称" value="${param.productName}"> soll den Wert aus den Parametern der Anforderungs -URL abrufen und die Funktion der Aktualisieren der Seite erkennen, um die Schlüsselwörter nach der Eingabe der Schlüsselwortsuche anzuzeigen. Das Bild ist direkt oben:
value="${param.productName}"
Wenn Sie chinesische Schlüsselwörter zur Suche eingeben, können Sie Encodeuricomponent verwenden, um das Problem der Anzeige des chinesischen verstümmelten Code im URL -Pfad zu lösen:
// Pagination $ ('#Pagination-Demo'). href: "? productName ="+cododeuricomponent ('$ {param.productName}')+"& place ="+cododeuricomponent ('$ {param.Place}')+ "& typId = $ {param.typeid} & minprice = $ {param.minprice} & maxprice = $ {param.maxprice} & p = {{{number}}"});Klicken Sie hier, um das größere Bild anzuzeigen
Suchergebnisse
Zusammenfassen
Das obige ist eine detaillierte Erklärung des vom Editor eingeführten Java -Implementierungsfunktionscode für die Suchfunktion. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!