Thymeleaf-验证属性是否已经存在

时间:2019-09-20 03:32:49

标签: spring thymeleaf

基本上我的问题很简单,我有一个注册表,其中对“登录”字段有限制。

Table(uniqueConstraints=@UniqueConstraint(columnNames = { "login" }))

因此,当我添加一个已经存在的登录名时,会出现一个异常: 为密钥'UKew1hvam8uwaknuaellwhqchhb'重复的条目'MyLogin'

我在问百里香叶中是否有任何方法可以显示一条消息,说明该名称已经存在。

1 个答案:

答案 0 :(得分:1)

在为新用户进行任何持久性事务之前,如果表中已经存在用户名,我将检查用户是否已经在表中已经存在具有相同用户名的用户(我认为您的“登录名”与该用户的用户名相同)。继续执行新的用户注册逻辑,并让表单控制器返回带有Model对象的视图,该Model对象具有service方法返回的重复的username属性。(可以在service方法中使用异常以获取更好的逻辑)

@RequestMapping("/registerNewUser")
public String showModel(@ModelAttribute UserDataTransferObject userDTO, Model model){


    String existedUsername = service.createUser(userDTO);
    if(existedUsername != null){
        model.addAttribute("existedUsername",existedUsername);
    }

    return "registrationstatus";

}

createUser方法检查存储库中是否包含具有相同用户名的条目,如果是,则以字符串形式返回该用户名(简单实现)。

在百里香叶中

<div th:if="${existedUsername != null}" class="alert alert-danger notification" role="alert">
   <p th:text="${existedUsername}"></p><p> already exists</p>
</div>