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

Bean验证@积极指令对Integer@PathVariable不起作用

祁和通
2023-03-14

我试图用@积极的bean验证注释验证一个控制器方法(REST Api资源)整数参数,但是什么也没有发生。

@RestController
@RequestMapping("/test")
public class TestController {

    @GetMapping("/{id}")
    public ResponseEntity<?> lista(@Valid @NotNull @Positive @PathVariable("id") Integer id) {
        String msg = "";
        if (id > 0) {
            msg = "id > 0";
        } else {
            msg = "id <= 0";
        }
        System.out.println(msg);
        return ResponseEntity.ok(msg);
    }
}

测试:

请求:
获取本地主机:8080/test/0
响应:
200 OK“ID<=0”
预期:
400 Bad Request

获取本地主机:8080/test/-1
响应:
200 OK“ID<=0”
预期:400 Bad Request


尝试获取本地主机:8080/test/teste时,收到一个400 Bad Request。

共有1个答案

夏朗
2023-03-14

有同样的问题,并通过应用

@Validated

在我的控制器上。这应该不是HTTP400而是HTTP500。

 类似资料:
  • 我正在使用Primefaces客户机bean验证,但它不起作用,错误消息消失,即使验证失败也会调用Listener。 示例-xhtml- 我正在使用-Primefaces 4 Jsf 2.2.6(mojarra)tomcat 7 请帮帮我。谢了。

  • 我有一个使用SpringDataREST的非常简单的SpringBoot2.0.3项目。 当我尝试使用http:localhost:8080/users上的POST添加电子邮件地址无效的用户时,会返回以下JSON: 波姆。XML 用户应用。JAVA 使用者JAVA 用户存储库。JAVA 我在谷歌上搜索过,几年前似乎有很多相关的问题,我在这里尝试过建议的解决方案 但这些都不起作用。 我已经花了很多时

  • 我的springboot版本是2.3.7。我知道spring boot starter验证不是spring boot starter web的可传递依赖项。但即使单独添加了它,我的注释也不起作用。 //下面的依赖我已经添加build.gradle编译'org.springframework.boot: spring-boot-starter-validation' //我希望在请求时出错的示例类

  • 问题内容: 我在JSF托管bean中使用了Hibernate Validation批注。当我使用时,或者它们似乎没有以任何方式被触发。 视图: 这是怎么引起的,我该如何解决? 问题答案: 介绍 由于您未对使用的是哪个容器的问题发表评论,因此我在您的问题历史记录中进行了了解,以了解所有使用的容器。到目前为止,我只找到了Tomcat。因此,对于这个答案,我将假设您确实使用了我最初在发布评论时所猜测的T

  • 我将Quartz.NET与CRON调度一起使用。我将失火指令设置为:开火并继续:

  • 问题内容: 我决定编写一个自定义指令来帮助我验证输入框。这个想法是,我将新的fancy 指令添加到引导程序中,它将检查my is 或is 并根据需要应用or 类。 出于某种奇怪的原因,我的指令在正常情况下可以正常工作,但是在ui-bootstrap模态内部完全忽略了添加的指令。 模态和形式相同的代码 我可爱的指令 在插件上查看:http ://plnkr.co/edit/AjvNi5e6hmXcT