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

用Bean验证来验证资源数据

狄玮
2023-03-14

我使用Jersey 2.19来实现REST API,但是我很难让资源验证像我预期的那样工作。

我的资源是这样的。

@POST
@Produces(MediaType.TEXT_PLAIN)
@Consumes("application/x-www-form-urlencoded")
public Response test(@NotNull @FormParam("test-param") String testParam, String body)
{
    String response = "test-param is: " + testParam + "\n" + "body is: " + body + "\n";
    return Response.status(Response.Status.OK).entity(response).build();
}

当我发出以下cURL请求时:

curl -X POST http://192.168.50.112:8080/myapp/test-validation --data invalid-param=invalid

我在终端窗口中得到以下响应:

test-param is: null
body is: invalid-param=invalid

也就是说,test-param的值是null,正如Java EE教程中定义的那样,不会引发异常。

共有1个答案

陈法
2023-03-14

尝试将公共响应测试(@formparam(“test-param”)@notnull String testParam,String body)代替公共响应测试(@notnull@formparam(“test-param”)String testParam,String body)表示@notnull之后的@formparam(“test-param”)@formparam(“test-param”)

 类似资料:
  • 我正在尝试使用自定义Bean验证来验证应该大于零的数值,但问题是使用如下单个自定义验证器来验证任何数值:整数、浮点数、双......: 整数int; @PositiveNumber双倍双; 这可能吗?

  • 问题内容: 我有一个简单的类,其属性之一为String数组。根据本文档,在数组,集合等上使用@Valid将递归地验证数组/集合的每个元素。 上面对属性的注释生成以下异常: 我正在使用Apache BVal作为验证提供程序。 问题是,上述方法正确吗? 如果不正确,那么使用bean验证来验证数组/集合的正确方法是什么? 如果正确,那么它对Apache BVal有一些限制吗? 问题答案: 通过像完成操作

  • 问题内容: 我正在通过DropWizard 0.7.1使用Jersey / JAX-RS公开RESTful服务端点。我所有的实体POJO都用JAX- RS和Hibernate / JSR-303 bean验证注释进行了注释,如下所示: 当资源方法接收到这些POJO之一作为输入时(实际上,DropWizard已经将HTTP实体JSON反序列化为一个实例),我想根据Hibernate / Bean V

  • 我正在通过DropWizard 0.7.1使用泽西/JAX-RS来公开RESTful服务endpoint。我已经用JAX-RS和HiberNate/JSR-303 bean验证注释注释了我所有的实体POJO,如下所示: 当资源方法接收到其中一个POJO作为输入时(在引擎盖下,DropWizard已经将HTTP实体JSON反序列化为

  • 环境 Glassfish 3.1.2内置Hibernate-Validator 4.2。

  • 首先,我是Vaadin7的新手。当我发现BeanFieldGroup.class时,我正在尝试一些vaadin演示。正如我所看到的,这个类将一个字段绑定到一个bean属性。在bean中,使用验证约束注释对属性进行注释(JSR303)。在本例中,我的pom.xml包含hibernate验证器依赖项: 我创建了validationmessage.properties文件,并在其中放了一些消息(带有匈牙