Exception evaluating SpringEL expression: “#fields.hasErrors()“ (template

今天学习spring实战第5版,里面有一些小错误,代码如下:

// tag::all[]
// tag::allButValidation[]
package tacos;

import java.util.List;
// end::allButValidation[]

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;

// tag::allButValidation[]
import lombok.Data;

@Data
public class Taco {

	// end::allButValidation[]

	// tag::allButValidation[]

//  @Size(min=5,message = "至少五个字符")
	@NotEmpty(message = "不能为空")
	private String name;
	// end::allButValidation[]

	// tag::allButValidation[]
	@Size(min = 1, message = "至少选择一个配料")
	private List<String> ingredients;

}
//end::allButValidation[]
//tag::end[]

DesignTacoController的请求如下:

 

注意我们的实体类其实叫Taco,而教材为model添加的键为design

前端也一样,通过thymeleaf获取了design

上图为接收表单的post请求,把表单的name作为空值提交,这样通过validation检查就会报错,从而返回design,而在design页面就会报错

提示已经很明显了,该name属性不存在于design。

解决方式如下,将get请求的键改为taco,还有不要忘记前端的form里的th:Object也改为taco 

所以个人认为,如果实体类需要添加校检,get请求的键值名称要和实体类名字一致。

 

 解决如下图:

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值