gpt4 book ai didi

java - Thymeleaf 表单验证唯一值,如何将错误传递给 View

转载 作者:搜寻专家 更新时间:2023-10-31 20:17:37 25 4
gpt4 key购买 nike

我正在为我的申请创建注册表格。我想检查用户名是否唯一。我通过

@Transactional
@RequestMapping(value = "/users/", method = RequestMethod.POST)
public String createUser(@ModelAttribute("user") @Valid User user, BindingResult bindingResult){


if (bindingResult.hasErrors() || !userService.isUniqueUsername(user)) {
ModelAndView modelAndView = new ModelAndView("redirect:/admin/createnew");
modelAndView.addObject(bindingResult.getFieldErrors());
ObjectError objectError = new ObjectError("ERROR", "Username exists!");
bindingResult.addError(objectError);
return "user-create";
}

我知道我的逻辑在这里是错误的,因为我没有将绑定(bind)结果提供给“用户创建” View 。

<div th:if="${#fields.hasErrors('username')}" th:errors="*{username}">
<p class="bg-danger text-center">Username error!</p>
</div>

所以 atm 我只能显示来自 @NotNull 和 @Size 等注释的错误但是我如何传递信息以查看服务器说用户名不是唯一的?

最佳答案

使用 FieldError 对象代替 ObjectError 并将其添加到绑定(bind)结果中。验证:

if (influence.getInfluenceImage() == null || influence.getInfluenceImage().isEmpty()) {
FieldError error = new FieldError("addInfluenceDTO", "influenceImage",
"Influence Image should not be empty.");
bindingResult.addError(error);
}

在我看来:

<label th:if="${#fields.hasErrors('influenceImage')}" th:class="'error'" th:errors=*{influenceImage} class="col-lg-4 control-label" style="color:red;" ></label>

关于java - Thymeleaf 表单验证唯一值,如何将错误传递给 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41037144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com