java页面过滤问题

问题描述 投票:0回答:1
@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 错误,我不知道为什么

我尝试通过更改结构检查路线来解决它,但没有任何效果

java spring-tool-suite
1个回答
0
投票

如果您想过滤数据,则使用查询参数而不是路径变量。

@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,

类似这样的事情。

© www.soinside.com 2019 - 2024. All rights reserved.