使用 Jersey 验证 Null 和空字符串

Validating Null and Empty Strings using Jersey

我可以拥有一个 Web 部署描述符文件 web.xml,其中包含一个在 Grizzly 容器之上运行的 Jersey 项目吗?我想限制我的资源以确保提供输入,使用@NotNull。

一些上下文...

我正在使用 Jersey 2.19 来实现 REST API。

按照用户指南的 'Getting Started' 部分,我成功创建了一个新的 Jersey 项目,该项目使用 Jersey 提供的 maven 原型在 Grizzly 容器之上运行。

我还通过使用各种内置约束注释资源成功地实现了一些 bean 验证。

我想向我的资源添加一个 @NotNull 约束,这意味着需要输入 - 即空字符串无法通过此验证约束。

Java EE tutorial 是指对 web.xml 进行更改,但我的项目中没有。我从用户指南中看到,如果我创建了一个 JavaEE Web 应用程序,那么 web.xml 文件就会存在。

我可以加一个吗?还是有另一种方法可以按照我想要的方式验证空字符串?

更新

Jersey 用户指南的第 18 章没有告诉我需要知道的内容。 Java EE tutorial 表示我需要在 web.xml 文件中设置 javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL。如果我没有 web.xml,那相当于什么?

javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL 是一个 JSF 参数,因此它对 Jersey 没有影响。由于使用 Jersey 进行 bean 验证的默认实现是 Hibernate Validator, you can use it's annotation @NotEmpty。它应该起到与 JSF 参数类似的作用(在空字符串上失败)。