@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错误,我不知道为什么

我试着通过改变EStructure判断路由来解决这个问题,但都不起作用

推荐答案

如果您想过滤数据,那么用户查询参数而不是PATH变量.

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

就像这样.

您的API将为:http://localhost:8080/filter?talla=somevalue&tipo=somevalue

您可以添加所有值或跳过任何不存在的值.

Java相关问答推荐

是否可以从@ TrustMapping中删除特定方法的基路径?

编译期间错误(Java 0000)Android .Net MAUI

更新我们的一个文物后出现了严重的符号引用错误

弹簧靴和龙目岛

如何调用Firebase Realtime Database中的子图像列表到android studio中的回收器视图?

通过合并Akka Streams中的多个慢源保持订购

放气总是压缩整个街区吗?

我可以在MacOS上使用什么Java函数来在适当的设备上以适当的音量播放适当的alert 声音?

Java ArrayList的整数和数组的泛型

buildDir:File!&#的getter解决方案是什么?39.被抛弃

如何在Java中为thunk创建映射器函数

将关闭拍卖的TimerService

AbstractList保证溢出到其他方法

为什么项目名称出现在我的GET请求中?

如何使用WebEnvironment.RANDOM_PORT获得第二个随机端口?

从字节数组切换到JakartaMail org.springframework.mail.javamail.JavaMailSender InputStreamResource

如何在Selenium上继续使用最新的WebDriver版本

Java编译器是否进行了持续的折叠优化,以及如何进行判断?

Spring Boot Security-每个端点都被403禁止,Spring记录一个BasicErrorController#错误(HttpServlet请求)

什么是;u〃;平均值;jdku;在java开发工具包中?