Ich habe eine Seite, wo ich eine Liste von Einträgen bekomme. Jetzt möchte ich in der Lage sein, von dieser Liste zu suchen.Verwenden Suchfunktion in Thymoleaf mit Anfrage Parameter
Meine aktuelle URL zum Abrufen der Liste ist dies/show/products. Ich möchte auf dieser Seite ein Suchformular hinzufügen, damit ich mit dem Anfrageparameter suchen kann. Ja, ich kann Ajax verwenden, aber ich muss es mit Anforderungsparametern tun. ?
so, wenn ich für einen Produktnamen zu suchen, dann -/show/products name = somename
<form ui-jp="parsley" th:action="@{/show/products(name=${pName})}" th:object="${pName}" method="get">
<div class="row m-b">
<div class="col-sm-6">
Search by Name: <input id="filter" type="text" th:field="*{pName}" class="form-control input-sm w-auto inline m-r"/>
<button class="md-btn md-fab m-b-sm indigo"><i class="material-icons md-24"></i></button>
</div>
</div>
</form>
Und das ist, was ich in der Steuerung versucht:
@GetMapping("/show/products")
public String getProduct(Model model,
@RequestParam(required = false) String name,
@ModelAttribute String pName) {
List<Product> products = this.productService.getAllProducts(name)
model.addAttribute("products", products);
return "show_product";
}
Ich erhalte diese Fehler:
Neither BindingResult nor plain target object for bean name 'pName' available as request attribute
at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:153)
at org.springframework.web.servlet.support.RequestContext.getBindStatus(RequestContext.java:897)
Dann muss ich 'name' nicht in Anforderungsparametern übergeben? – nirvair
@nirvair Browser wird es für Sie hinzufügen, da es eine GET-Methode ist, aber auch mit der POST-Methode arbeiten wird. – Zeronex