Spring 验证:正则表达式注释不起作用

elp*_*elp 1 regex validation spring-boot

执行控制器方法时,我收到此日志:

对象:[字段“名称”上的对象“目录”中的字段错误:拒绝值 [ 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;
...
Run Code Online (Sandbox Code Playgroud)

控制器:

@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/";
}
Run Code Online (Sandbox Code Playgroud)

当我去的时候regex101.com一切似乎都很好。除此之外,我尝试了一些正则表达式,但似乎没有一个正常工作。

Tim*_*sen 7

要允许一个或多个小写或大写字母,您应该附加+到模式的末尾:

@NotNull
@Size(min=1, max=8)
@Pattern(regexp = "[A-Za-z]+")
private String name;
Run Code Online (Sandbox Code Playgroud)