过滤器中的 Ninja Framework JSR303Validation

Posted

技术标签:

【中文标题】过滤器中的 Ninja Framework JSR303Validation【英文标题】:Ninja Framework JSR303Validation in Filter 【发布时间】:2015-02-21 21:00:48 【问题描述】:

我正在开发一个基于 Ninja JSON 的应用程序,我在其中跨多个控制器方法实现 @JSR303Validation 注释。我目前正在通过传入 Validation 对象并调用 validation.hasBeanViolations() 来检查控制器本身中的验证,以查看是否有故障。如果有,我将向客户端返回失败的结果。

我想使用过滤器验证请求,而不是在控制器中执行此操作。但是,我不知道该怎么做?有人可以帮忙吗?据我所知,您不能将验证作为参数传递给过滤器,并且 context.getValidation() 对象似乎没有发现任何验证失败。

【问题讨论】:

【参考方案1】:

目前无法使用过滤器(从 Ninja 4.0.x 开始)。但是,您可以自己实现它。这将大致按以下方式工作:

创建过滤器

通过context.getParameterAs("parametername", Pojo.class);

获取传入请求的内容

使用javax.validation.Validation 自己验证类。您可以或多或少地从 JSRValidator (https://github.com/ninjaframework/ninja/blob/develop/ninja-core/src/main/java/ninja/validation/Validators.java) 复制和粘贴该方法。

这并不太复杂。但它不像控制器中的注释方法那样自动化。

【讨论】:

以上是关于过滤器中的 Ninja Framework JSR303Validation的主要内容,如果未能解决你的问题,请参考以下文章

Ninja Framework mailProvider.get() 给出空指针异常

如何安装第一个 Ninja Web Framework 应用程序?

将 java.sql.Connection 注入 Ninja Framework 的控制器

Ninja Framework:通过 Eclipse 和 m2eclipse 插件进行调试 - jetty:run 不启动服务器,而是构建

Spring Framework 6.x强势发布

Spring Framework 6.x强势发布