gpt4 book ai didi

java - Spring 中的表单验证操作 5

转载 作者:行者123 更新时间:2023-12-01 18:16:11 26 4
gpt4 key购买 nike

我正在github上关注spring in action 5的源代码,并编写了我自己的版本。当我将名称留空并提交时,我会得到这样的错误页面

enter image description here

控制台输出为:字段“name”上的对象“taco”中出现字段错误:拒绝值 [];

但是正确的页面是这样的: the taco design page with a warning message aroud the name text box

这是我的代码:

设计.html

 <label>give it a name:</label>

<input type="text" th:field="*{name}">

<span class="validationError"
th:if="${#fields.hasErrors('name')}"
th:errors="*{name}">Name Error</span>

designController.java

    @PostMapping
public String postTaco(@Valid Taco taco, Order order, Errors errors) {
if (errors.hasErrors()){
return "design";
}

Taco taco1 = tacoRepo.save(taco);
order.addDesign(taco1);
return "order";
}


Taco.java

@Size(min=5, message = "at least 5 characters")
private String name;

最佳答案

问题出在哪里

designContrller.java

    @PostMapping
public String postTaco(@Valid Taco taco, Order order, Errors errors) {
if (errors.hasErrors()){
return "design";
}

Taco taco1 = tacoRepo.save(taco);
order.addDesign(taco1);
return "order";
}

解决方案:

    @PostMapping
public String postTaco(@Valid Taco taco, Errors errors, Order order) {
if (errors.hasErrors()){
return "design";
}

Taco taco1 = tacoRepo.save(taco);
order.addDesign(taco1);
return "order";
}

结论:

参数Erroes错误必须隐藏在有效的对象参数后面,这里是Taco taco

关于java - Spring 中的表单验证操作 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60362758/

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