@GetMapping("/filter/{talla}/{tipo}/{marca}/{palabra}")
public String busqueda(Model model,
@PathVariable(name = "talla", required = false) String talla,
@PathVariable(name = "tipo", required = false) String tipo,
@PathVariable(name = "marca", required = false) String marca,
@PathVariable(name = "palabra", required = false) String palabra) {
List<Zapatilla> zapatillas = servi.todasZapatillas();
// Verificar si algún parámetro tiene un valor y aplicar el filtro correspondiente
if (talla != null) {
zapatillas = servi.filtrarPorTalla(zapatillas, talla);
}
if (tipo != null) {
zapatillas = servi.filtrarPorTipo(zapatillas, tipo);
}
if (marca != null) {
zapatillas = servi.filtrarPorMarca(zapatillas, marca);
}
if (palabra != null) {
zapatillas = servi.buscarPorNombre(zapatillas, palabra);
}
model.addAttribute("zapatillas", zapatillas);
return "shoes.jsp";
}
理论上这必须适用于每个过滤器,但只有当我放置每个过滤器时才有效,否则它会给我一个 404 错误,我不知道为什么
我尝试通过更改结构检查路线来解决它,但没有任何效果
如果您想过滤数据,则使用查询参数而不是路径变量。
@GetMapping("/filter")
public String busqueda(Model model,
@RequestParam(name = "talla", required = false) String talla,
@RequestParam(name = "tipo", required = false) String tipo,
@RequestParam(name = "marca", required = false) String marca,
类似这样的事情。