当前位置: 首页 > 知识库问答 >
问题:

Thymeleaf和Spring boot中的错误处理

潘佐
2023-03-14
html prettyprint-override"><div class="u-expanded-width-xs u-form u-form-1">
    <form class="u-clearfix u-form-horizontal u-form-spacing-10 u-inner-form"
          method="POST"
          modelAttribute="indexFormBean" name="form"
          style="padding: 0;"
          th:action="@{/home}" th:object="${indexFormBean}">
        <div class="u-form-group u-form-name u-form-group-1">
            <label for="email-dbf3"
                   class="u-form-control-hidden u-label">Email</label>
            <input type="email" placeholder="Enter a valid email address"
                   id="email-dbf3" name="email"
                   class="u-border-1 u-border-grey-30 u-input u-input-rectangle u-white"
                   required="true" autofocus="autofocus">
        </div>
        <div class="u-form-email u-form-group u-form-group-2">
            <label for="name-dbf3"
                   class="u-form-control-hidden u-label">Name</label>
            <input type="text" placeholder="Enter a valid password" id="name-dbf3"
                   name="password"
                   class="u-border-1 u-border-grey-30 u-input u-input-rectangle u-white"
                   required="true">
        </div>
        <div class="u-align-left u-form-group u-form-submit u-form-group-3">
            <button type="submit" name="submit" class="btn btn-primary btn-lg">Login
            </button>
        </div>
        <p th:if="${#fields.hasErrors('email')}"  th:errors="*{email}">Description errors</p>
    </form>
</div>

提交表单时调用的控制器方法如下所示

@PostMapping("/home")
public String authenticate(@ModelAttribute IndexFormBean indexFormBean, Model model){
    String loginResponse = userService.login(indexFormBean.getEmail(), 
    indexFormBean.getPassword());
    if(StringUtils.isEmpty(loginResponse)){
        //Some error that is returned from the service layer
        return "index";
    }
    return "home";
}

现在,如果authenticate方法需要在UI(index.html)上显示一些错误,我该怎么做呢?

共有1个答案

仲孙子辰
2023-03-14

在MVC中有两种方法可以处理错误消息。

  1. 使用error.html模板。如果Spring boot在controller方法中遇到任何未捕获的异常,它将自动使用此模板。
  2. 控制器方法中捕获异常,并将适当的错误消息添加到模型中。然后,可以在index.htmlhome.html
  3. 中使用错误消息

你可以做一些事情,

if(StringUtils.isEmpty(loginResponse)){
    model.addAttribute("errorMessage","Login failed");
    return "index";
}
    <span th:if="${errorMessage}"  th:text="${errorMessage}">Error</span>
 类似资料:
  • 本文向大家介绍SpringBoot中的Thymeleaf用法,包括了SpringBoot中的Thymeleaf用法的使用技巧和注意事项,需要的朋友参考一下 Thymeleaf Thymeleaf是最近SpringBoot推荐支持的模板框架,官网在thymeleaf.org这里。 我们为什么要用Thymeleaf来作为模板引擎呢?官网给了我们一个非常令人信服的解释: Thymeleaf is a m

  • 本文向大家介绍SpringBoot中的Thymeleaf模板,包括了SpringBoot中的Thymeleaf模板的使用技巧和注意事项,需要的朋友参考一下 一、前言     Thymeleaf 的出现是为了取代 JSP,虽然 JSP 存在了很长时间,并在 Java Web 开发中无处不在,但是它也存在一些缺陷: 1、JSP 最明显的问题在于它看起来像HTML或XML,但它其实上并不是。大多数的JS

  • 我有一个REST APISpring启动应用程序,并希望处理控制器Advice中的任何错误,因为我希望有一个自定义的响应格式,而不是使用Spring默认响应。 例如,RequestRejectedException之类的异常不会通过Controller建议处理。在Spring上,是否有一种优雅的方法来处理单处理程序中可能出现的错误? 对于RequestRejectedException,我已经实现

  • 使用NetBeans 8.1。 我有一个SpringBoot项目,它使用Thymeleaf作为模板,除了在html页面中使用标记外,一切都正常 <代码> 我有一个本地名为“xmlns:th”的error属性不能序列化为XML 1.0,我可以使用thymeleaf函数,如th:each或th:text,但它们总是显示相同的错误,我在键入时无法提供建议,有没有办法解决这个问题?

  • 我从胸腺嘧啶开始。我只是复制了一个例子,并根据我的需要进行了调整。然而,它并不起作用。我很感激任何帮助。 标签 控制器 labelForm.html ...

  • 问题内容: 我的CSS和Thymeleaf有问题。 在我的Spring启动应用程序中,我具有以下结构: src / main / resource / static / css(用于CSS文件) src / main / resource / static / templates(用于html文件) 现在,使用我的Thymeleaf,将我的html页面命名为ErrorPage,将css文件命名为L

  • 问题内容: 我正在尝试使用swift和firebase在iOS项目中创建用户按钮时添加错误处理: 这是按钮的代码: 我不确定switch语句中错误的语法是否正确! 因为当我在模拟器中对其进行测试时,它始终会给我提供默认情况,这是未知错误!+我在文档中找不到语法:https : //firebase.google.com/docs/auth/ios/errors 因此,使用新的firebase和sw

  • 本文向大家介绍SpringBoot 错误处理机制与自定义错误处理实现详解,包括了SpringBoot 错误处理机制与自定义错误处理实现详解的使用技巧和注意事项,需要的朋友参考一下 【1】SpringBoot的默认错误处理 ① 浏览器访问 请求头如下: ② 使用“PostMan”访问 请求头如下: 总结:如果是浏览器访问,则SpringBoot默认返回错误页面;如果是其他客户端访问,则默认返回JSO