Java Spring启动错误消息不存在';行不通

Java Spring启动错误消息不存在';行不通,java,spring,validation,spring-boot,thymeleaf,Java,Spring,Validation,Spring Boot,Thymeleaf,我正在编写我的第一个spring boot应用程序,我被这个问题困住了。我无法向用户显示错误消息。没有该数据的对象不会保存在数据库中,这是正常的。但是显示错误消息是问题所在。调试时,我得到的错误大小为0 这是一个模型 @Size(min = 1, message = "Address is invalid.") @NotNull @Column private String address; 控制器 @RequestMapping(value = "/create", method = Req

我正在编写我的第一个spring boot应用程序,我被这个问题困住了。我无法向用户显示错误消息。没有该数据的对象不会保存在数据库中,这是正常的。但是显示错误消息是问题所在。调试时,我得到的错误大小为0

这是一个模型

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

@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";
}
@RequestMapping(value=“/create”,method=RequestMethod.POST,consumes=MediaType.APPLICATION\u FORM\u URLENCODED\u value)
公共字符串createNewBusiness(@Valid@ModelAttribute(“业务”)业务,
BindingResult(结果,模型){
addAttribute(“userEmail”,getUserEmail());
logger.info(“/business/create:+business.toString());
LocationResponse LocationResponse=geoService.getCoords(business.getAddress());
if(locationResponse.getStatus().equals(“OK”)){
setLatitude(locationResponse.getResults().get(0.getGeometry().getLocation().getLat());
setLength(locationResponse.getResults().get(0.getGeometry().getLocation().getLng());
setUserId(getUserId());
businessService.createNew(业务);
model.addAttribute(“业务”,业务);
}否则{
business.setAddress(空);
model.addAttribute(“业务”,业务);
}
if(result.hasErrors()){
List errors=result.getFieldErrors();
for(FieldError错误:错误){
System.out.println(error.getObjectName()+“-”+error.getDefaultMessage());
}
回归“新业务”;
}
返回“业务”;
}
百里香

<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>

无效地址

您是否在
@springboot应用程序中定义了
验证器

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class);
    }

    @Bean
    public Validator validator() {
        return new LocalValidatorFactoryBean();
    }
}

不,我没有。我不熟悉验证器。你能给我一些关于验证器的提示吗?你不需要这样做,因为它是开箱即用的配置,而且验证正在工作,并且当保存实体失败时设置失败(可能是由于验证)。你的输入字段应该有
th:field=“*{address}”
属性,而不是
name
属性。这需要与百里香进行适当的结合。