我在做一个演示网站,如果实体“academy”的字段“name”已经存在,就需要显示一条错误消息。我无法显示“帮助块”。
目标:
在页面中显示类似“名称不可用”的消息
现有名称引发唯一约束冲突
用try-catch块处理异常?
这是不报告错误的html块,请注意元素不起作用:
<form class="needs-validation" novalidate th:object="${academy}" th:action="@{/academy/new}" method="POST">
<input type="hidden" th:field="*{id}">
<div class="row">
<div class="col-sm-6 offset-sm-3 form-group form-check">
<label for="academy_name"> Name </label>
<input th:field="*{name}" id="academy_name" type="text" class="form-control" placeholder="academy name" required minlength="3" maxlength="255">
<small class="text-muted"> * Required. </small>
<span class="help-block" th:if="${#fields.hasErrors('*')}">
<label>ERRORS</label>
<ul>
<li th:each="err : ${#fields.errors('*')}" th:text="${err}"></li>
</ul>
</span>
</div>
</div>
<div class="col-sm-6 offset-sm-3 form-group form-check">
<button type="submit" class="btn btn-primary"> Add </button>
</div>
</form>
这是我的控制器类,请注意,我正在检查名称是否存在,以便不会得到“唯一约束冲突”:
@PostMapping("/academy/new")
public String saveAcademy(@Valid @ModelAttribute AcademyDTO academyDTO,
Model model, BindingResult bindingResult) {
log.debug("saveAcademy()");
if (academyService.existsByName(academyDTO.getName())) {
model.addAttribute("academy", academyDTO);
model.addAttribute("academies", academyService.findAll());
bindingResult.addError(new FieldError("academy", "name", "This name already exists"));
return ACADEMY_URL;
}
academyService.saveAcademy(academyDTO);
return "redirect:/academy";
}
暂无答案!
目前还没有任何答案,快来回答吧!