首页 > 解决方案 > 如何在 GET 请求中使用 RequestParam 上的 Spring MVC 验证在 Thymeleaf 中显示错误消息?

问题描述

我正在尝试验证 get 请求中的一个参数,并希望向视图添加一条错误消息,然后在验证失败时返回带有添加的错误消息的相同视图。我花了很多时间阅读文档和查看示例,但无法弄清楚它如何在当前版本中与 Spring MVC 和 Thymeleaf 一起使用。

有问题的方法:

    @GetMapping(value = "/converter", params = {"from", "to", "amount"})
    public String convert(@RequestParam("from") String from,
                          @RequestParam("to") String to,
                          @RequestParam("amount") @Valid @NotBlank @DecimalMin("0.0") double amount,
                          Model model) {
        String conversion = converterService.convert(new ConversionDTO(from, to, amount));
        //model.addValidationErrorsToModelSomehow(errors);
        model.addAttribute("conversion", conversion);
        return "main";
    }

风景:

<div>
    <!-- display error here -->
    <p th:text="${'Has error: ' + error}"></p>
    <form method="get">
        Amount
        <input type="text" name="amount">
        From
        <select name="from">
            <option value="SEK">SEK</option>
            <option value="EUR">EUR</option>
            <option value="CHF">CHF</option>
            <option value="USD">USD</option>
        </select>
        To
        <select name="to">
            <option value="SEK">SEK</option>
            <option value="EUR">EUR</option>
            <option value="CHF">CHF</option>
            <option value="USD">USD</option>
        </select>
        <input type="submit">
        <input type="text" th:value="${conversion}">
    </form>
</div>

我需要添加什么才能使其正常工作?

标签: javavalidationspring-mvcthymeleaf

解决方案


推荐阅读