gpt4 book ai didi

java - Spring 启动验证不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:08:50 27 4
gpt4 key购买 nike

我有 Spring Boot 应用程序,但无法向用户显示错误消息。没有该数据的对象不会保存在数据库中,这没关系。但显示错误消息是问题所在。调试时出现错误 size = 0

这是我的模型:

 @Size(min = 1, message = "Address is invalid.")
@NotNull
@Column
private String address;

Controller

  @RequestMapping(value = "/create", method = RequestMethod.POST, 
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public String createNewBusiness(@Valid @ModelAttribute("business")
Business business, BindingResult result, Model model) {
model.addAttribute("userEmail", getUserEmail());
logger.info("/business/create:" + business.toString());
LocationResponse locationResponse = geoService.getCoords(business.getAddress());

if(locationResponse.getStatus().equals("OK")) {
business.setLatitude(locationResponse.getResults().get(0).getGeometry().getLocation().getLat());
business.setLongitude(locationResponse.getResults().get(0).getGeometry().getLocation().getLng());
business.setUserId(getUserId());

businessService.createNew(business);

model.addAttribute("business", business);

}else{
business.setAddress(null);
model.addAttribute("business", business);

}

if(result.hasErrors()){
List<FieldError> errors = result.getFieldErrors();
for (FieldError error : errors ) {
System.out.println (error.getObjectName() + " - " + error.getDefaultMessage());
}
return "newBusiness";
}

return "business";

和 thymeleaf

<div class="input-field left m-0 w-100">
<i class="fa fa-map-marker prefix grey-text" aria-hidden="true"></i>
<input placeholder="Address" id="inputAddress" name="address" type="text" class="validate my-0" th:required="true">
<label th:errors="*{address}" th:if="${#fields.hasErrors('address')}" >Invalid address </label>
</div>

最佳答案

您需要使用 @Valid 和一些 @ModelAttribute 作为 createNewBusiness() 的参数 - 取决于您的参数和内容.

您还需要将 th:field="*{adress}" 添加到您的输入字段,因为它是该输入字段在框架中的 ID。


因此在您的情况下,方法 header 将如下所示:

public String createNewBusiness(@ModelAttribute Business business,
@Valid Model model, BindingResult result) {
// ...
}

关于java - Spring 启动验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49492803/

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