0

这是我第一次使用 StackOverflow,对于问题摘要中的任何错误,我深表歉意。

我正在尝试button为视频目录网页创建一个,当按下该网页时会返回具有合适类型的电影。这些电影都static已经分配了一个流派,例如流派 = 'Action' ,它String在名为 的函数中作为 a 返回getGenre()。我做了一个函数来检查每部电影是否有一个流派,然后将它们放入过滤后的列表中,然后作为“目录”返回(我将在下面展示函数代码)。

我知道过滤器目前包含所有电影,但我想让它工作,当button按下它时,它会检查 HTML 文件中的字符串流派以查找特定流派,然后返回正确的电影。

过滤功能:

@PostMapping("/genre")
  String dvdCatalog(Model model, @RequestParam("genre") String genre ) {

    Iterable<Disc> dvdList = catalog.findByType(DiscType.DVD);
    List<Disc> filtered = new ArrayList<Disc>();

    
    for (Iterator<Disc> iterator = catalog.findByType(DiscType.DVD).iterator();
         iterator.hasNext(); )
    {
        Disc disc = iterator.next();
        if (disc.getGenre().equals(genre))
        {
            filtered.add(disc);
        }
    }

    model.addAttribute("catalog", filtered);
    model.addAttribute("title", "catalog.bluray.title");

    return "catalog";

在我相应的 HTML 文件中,我制作了“操作”按钮,在检查网页时它可以正常工作,直到我按下操作按钮。我是 Web 开发的新手,不太了解它是如何工作的,当按下时我得到一个 Whitelabel 错误页面,我将在下面显示它。

html按钮:

<form method="post" class="ui form" id="form" th:action="@{/genre}" >
    <button type="submit" class="ui button" th:value="'Action'" th:text="Action" id="genre"></button>
</form>

白标错误:

此应用程序没有显式映射 /error,因此您将其视为后备。

出现意外错误(类型=错误请求,状态=400)。必需的字符串参数“流派”不存在 org.springframework.web.bind.MissingServletRequestParameterException:
org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.handleMissingValue(RequestParamMethodArgumentResolver.java:204)中不存在必需的字符串参数“流派”

我的问题是:为什么我的String参数不存在,即使我在 HTML 中检查它?我对如何使这项工作一无所知,我不知道为什么它找不到流派参数。

如果有人知道你能告诉我它是怎么做的吗?我想了解并从中学习,这很令人沮丧

谢谢

编辑:将 id = "genre" 更改为 name = "genre" 已经解决了查找参数的问题(非常感谢,真的)但是当我现在按下按钮时,它会显示一个只有按钮的空白页面,什么那里发生了?我怎样才能让它返回我的列表?

4

0 回答 0