Java org.springframework.validation.BeanPropertyBindingResult:5个错误
我在春季的申请表中填写了联系方式。我有一个问题: 字段“name”上的对象“contact”中的字段错误:值被拒绝 [零];代码 [NotBlank.contact.name,NotBlank.name,NotBlank.java.lang.String,NotBlank]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码[联系人姓名];参数[];默认消息[姓名]; 上对象“联系人”中的默认消息[不能为空]字段错误 字段“消息”:拒绝的值[null];代码 [NotBlank.contact.message,NotBlank.message,NotBlank.java.lang.String,NotBlank]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码[contact.message,message];参数[];默认消息 [信息];对象中的默认消息[不能为空]字段错误 字段“主题”上的“联系人”:拒绝的值[null];代码 [NotBlank.contact.subject,NotBlank.subject,NotBlank.java.lang.String,NotBlank]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码[contact.subject,subject];参数[];默认消息 [主题]];对象中的默认消息[不能为空]字段错误 字段“phone”上的“contact”:拒绝的值[null];代码 [NotBlank.contact.phone,NotBlank.phone,NotBlank.java.lang.String,NotBlank]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码[contact.phone,phone];参数[];默认消息[phone]; 对象“联系人”中的默认消息字段错误 字段“email”上:拒绝值[null];代码 [NotBlank.contact.email,NotBlank.email,NotBlank.java.lang.String,NotBlank]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码[contact.email,email];参数[];默认消息[email]; 默认消息[不能为空]] 控制器:Java org.springframework.validation.BeanPropertyBindingResult:5个错误,java,spring,spring-boot,spring-mvc,Java,Spring,Spring Boot,Spring Mvc,我在春季的申请表中填写了联系方式。我有一个问题: 字段“name”上的对象“contact”中的字段错误:值被拒绝 [零];代码 [NotBlank.contact.name,NotBlank.name,NotBlank.java.lang.String,NotBlank]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码[联系人姓名];参数[];默认消息[姓名]; 上对象“联系人”中的默认消息
@Controller
public class ContactController {
@Autowired
MailComponent mailComponent;
@GetMapping("/contact")
public String contact(@ModelAttribute Contact contact) {
return "contact";
}
@PostMapping("/contact")
public String processContact(@Validated Contact contact, RedirectAttributes model, BindingResult bindingResult) {
if (bindingResult.hasErrors())
return "contact";
if (mailComponent.sendSimpleMail(contact)) {
model.addFlashAttribute("classCss", "alert sukcesu");
model.addFlashAttribute("message", "Twoja wiadomość została wysłana");
} else {
model.addFlashAttribute("classCss", "alert ostrzeżenie");
model.addFlashAttribute("message", "Wystąpił nieoczekiwany błąd, powtórz później");
}
return "redirect:/";
}
}
实体:
public class Contact {
@NotBlank
@Pattern(regexp = "[\\p{L} '-]+", message = "{com.diet4you.LapkoEkaterina.constraint.Name.message}")
private String name;
@NotBlank
@Pattern(regexp = "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])",
message = "{com.diet4you.LapkoEkaterina.constraint.Email.message}")
private String email;
@NotBlank
@Pattern(regexp = "\\+(?:[0-9] ?){6,14}[0-9]", message = "{com.diet4you.LapkoEkaterina.constraint.Phone.message}")
private String phone;
@NotBlank
private String subject;
@NotBlank
private String message;
public Contact() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
验证属性:
javax.validation.constraints.AssertFalse.message = must be false
javax.validation.constraints.AssertTrue.message = must be true
javax.validation.constraints.DecimalMax.message = must be less than ${inclusive == true ? 'or equal to ' : ''}{value}
javax.validation.constraints.DecimalMin.message = must be greater than ${inclusive == true ? 'or equal to ' : ''}{value}
javax.validation.constraints.Digits.message = numeric value out of bounds (<{integer} digits>.<{fraction} digits> expected)
javax.validation.constraints.Future.message = must be in the future
javax.validation.constraints.Max.message = must be less than or equal to {value}
javax.validation.constraints.Min.message = must be greater than or equal to {value}
javax.validation.constraints.NotNull.message = may not be null
javax.validation.constraints.Null.message = must be null
javax.validation.constraints.Past.message = must be in the past
javax.validation.constraints.Pattern.message = must match "{regexp}"
javax.validation.constraints.Size.message = size must be between {min} and {max}
org.hibernate.validator.constraints.CreditCardNumber.message = invalid credit card number
org.hibernate.validator.constraints.EAN.message = invalid {type} barcode
org.hibernate.validator.constraints.Email.message = not a well-formed email address
org.hibernate.validator.constraints.Length.message = length must be between {min} and {max}
org.hibernate.validator.constraints.LuhnCheck.message = The check digit for ${validatedValue} is invalid, Luhn Modulo 10 checksum failed
org.hibernate.validator.constraints.Mod10Check.message = The check digit for ${validatedValue} is invalid, Modulo 10 checksum failed
org.hibernate.validator.constraints.Mod11Check.message = The check digit for ${validatedValue} is invalid, Modulo 11 checksum failed
org.hibernate.validator.constraints.ModCheck.message = The check digit for ${validatedValue} is invalid, ${modType} checksum failed
org.hibernate.validator.constraints.NotBlank.message = This field is required
org.hibernate.validator.constraints.NotEmpty.message = may not be empty
org.hibernate.validator.constraints.ParametersScriptAssert.message = script expression "{script}" didn't evaluate to true
org.hibernate.validator.constraints.Range.message = must be between {min} and {max}
org.hibernate.validator.constraints.SafeHtml.message = may have unsafe html content
org.hibernate.validator.constraints.ScriptAssert.message = script expression "{script}" didn't evaluate to true
org.hibernate.validator.constraints.URL.message = must be a valid URL
org.hibernate.validator.constraints.br.CNPJ.message = invalid Brazilian corporate taxpayer registry number (CNPJ)
org.hibernate.validator.constraints.br.CPF.message = invalid Brazilian individual taxpayer registry number (CPF)
org.hibernate.validator.constraints.br.TituloEleitoral.message = invalid Brazilian Voter ID card number
com.diet4you.LE.Name.message = Tylko litery
com.diet4you.LE.Email.message = Nie format e-mail
com.diet4you.LE.Phone.message = InNie format numeru
javax.validation.constraints.AssertFalse.message=必须为false
javax.validation.constraints.AssertTrue.message=必须为true
javax.validation.constraints.DecimalMax.message=必须小于${inclusive==true?或等于“:”}{value}
javax.validation.constraints.DecimalMin.message=必须大于${inclusive==true?或等于“:”}{value}
javax.validation.constraints.Digits.message=数值超出范围(.expected)
javax.validation.constraints.Future.message=必须在将来
javax.validation.constraints.Max.message=必须小于或等于{value}
javax.validation.constraints.Min.message=必须大于或等于{value}
javax.validation.constraints.NotNull.message=不能为null
javax.validation.constraints.Null.message=必须为Null
javax.validation.constraints.pass.message=必须在过去
javax.validation.constraints.Pattern.message=必须匹配“{regexp}”
javax.validation.constraints.Size.message=大小必须介于{min}和{max}之间
org.hibernate.validator.constraints.CreditCardNumber.message=无效的信用卡号
org.hibernate.validator.constraints.EAN.message=无效的{type}条形码
org.hibernate.validator.constraints.Email.message=格式不正确的电子邮件地址
org.hibernate.validator.constraints.Length.message=长度必须介于{min}和{max}之间
org.hibernate.validator.constraints.LuhnCheck.message=${validatedValue}的校验位无效,Luhn模10校验和失败
org.hibernate.validator.constraints.Mod10Check.message=${validatedValue}的校验位无效,模10校验和失败
org.hibernate.validator.constraints.Mod11Check.message=${validatedValue}的校验位无效,模11校验和失败
org.hibernate.validator.constraints.ModCheck.message=${validatedValue}的检查数字无效,${modType}校验和失败
org.hibernate.validator.constraints.NotBlank.message=此字段为必填字段
org.hibernate.validator.constraints.NotEmpty.message=不能为空
org.hibernate.validator.constraints.parameterscriptasert.message=脚本表达式“{script}”的计算结果未为true
org.hibernate.validator.constraints.Range.message=必须介于{min}和{max}之间
org.hibernate.validator.constraints.SafeHtml.message=可能包含不安全的html内容
org.hibernate.validator.constraints.ScriptAssert.message=脚本表达式“{script}”的计算结果不是true
org.hibernate.validator.constraints.URL.message=必须是有效的URL
org.hibernate.validator.constraints.br.CNPJ.message=无效的巴西公司纳税人注册号(CNPJ)
org.hibernate.validator.constraints.br.CPF.message=无效的巴西个人纳税人注册号(CPF)
org.hibernate.validator.constraints.br.TituloEleitoral.message=无效的巴西选民ID卡号
com.diet4you.LE.Name.message=Tylko litery
com.diet4you.LE.Email.message=Nie格式电子邮件
com.diet4you.LE.Phone.message=InNie格式数字
由于您已在实体类“联系人”中设置了字段名称、电子邮件、电话、主题、消息的验证,请检查您是否正在表单中传递所有这些值。如果未按照实体类传递值,Spring将无法绑定在方法processContact中传递的Contact对象,并引发BeanPropertyBindingResult错误。BindingResult需要紧跟在bean之后:
试着从
@PostMapping("/contact")
public String processContact(@Validated Contact contact, RedirectAttributes model, BindingResult bindingResult)
到
我添加了验证属性您的前端是什么(JSP、Thymeleaf、freemaker等等
@PostMapping("/contact")
public String processContact(@Validated Contact contact, BindingResult bindingResult, RedirectAttributes model)