当前位置: 首页 > 知识库问答 >
问题:

Spring验证:regex注释不起作用

汤嘉平
2023-03-14

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

ObjECT:[字段名称上的对象目录中的字段错误:拒绝值[safasf];代码[Pattern.catalog.name, Pattern.name, Pattern.java.lang.String, Pattern];参数[org.springframework.context.support.DefaultMessageSourceResolable:代码[catalog.name, name];参数[];默认消息[name],[Ljavax.validation.constraints.Pattern$Fags;@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一切似乎都很好。除此之外,我尝试了一些正则表达式,但似乎没有一个能正常工作。

共有1个答案

仲孙子辰
2023-03-14

要允许使用一个或多个小写或大写字母,应在模式末尾附加

@NotNull
@Size(min=1, max=8)
@Pattern(regexp = "[A-Za-z]+")
private String name;
 类似资料:
  • 我有一个简单的类叫BeaconDao 然而,当我用@service或@component标记beaconDao时,一切都运行得非常好。有人能看出问题所在吗?

  • 我创建了一个新的注释来验证控制器上的参数: 这是我的验证器: 这是我的控制器: 我的控制器注释为: 我还有一个建议控制器,我打算用它来捕捉抛出的异常: 我在控制台上得到的是: pom.xml中的依赖关系: 谁能告诉我我错过了什么?

  • 我尝试使用SmtpAuthenticator创建邮件服务。组件已正确启动,但用户名和密码字段中存在空值。为什么会这样?

  • 我尝试使用Spring security 3.1 但当我ROLE_USER权限 和控制程序代码

  • 根据我的理解,在methodB()中,我们使用someManager保存一个对象,并调用另一个函数callToSomeOtherServer()。所以这是上层方法中事务的一部分。如果callToSomeOtherServer()失败并抛出someException,整个事务应该回滚,保存的对象不应该在DB中反映。 但这对我不起作用,对象反映在DB中。有人能帮忙让我明白为什么它不起作用吗?