执行控制器方法时,我收到以下日志:
对象:[对象'目录'中对象'目录'中的字段错误:拒绝的值[ safasf ]];代码[Pattern.catalog.name,Pattern.name,Pattern.java.lang.String,Pattern];参数[org.springframework.context.support.DefaultMessageSourceResolvable:代码[catalog.name,name];参数[];默认消息[名称],[Ljavax.validation.constraints.Pattern $ Flag; @ 5f32f731,org.springframework.validation.beanvalidation.SpringValidatorAdapter $ ResolvableAttribute @ 2180fe7e];默认消息[muss auf Ausdruck“ [A-Za-z] ” passen]]
正则表达式:[A-Za-z]
输入:safasf
代码:
...
@NotNull
@Size(min=1, max=8)
@Pattern(regexp = "[A-Za-z]")
private String name;
...
控制器:
@PostMapping(ADD_CATALOG)
public String addCatalog(@Valid @ModelAttribute Catalog catalog, BindingResult result){
if(result.hasErrors()){
logAction("addCatalog", "Validation of "+catalog.getName()+" failed: ", result.getAllErrors().toString());
return "redirect:/catalog/addCatalog/";
}
catalogProviderComponent.addOrUpdateCatalogEntity(catalogComponent.catalog2catalogEntity(catalog));
logAction("addCatalog","catalog", catalog);
return "redirect:/catalog/addCatalog/";
}
当我去regex101.com
时,一切似乎都很好。除此之外,我尝试了很少的正则表达式,但似乎都无法正常工作。
答案 0 :(得分:3)
要允许一个或多个小写或大写字母,应在模式末尾附加+
:
@NotNull
@Size(min=1, max=8)
@Pattern(regexp = "[A-Za-z]+")
private String name;