我正在开发一个基于Ninja JSON的应用程序,我在其中实现跨多个控制器方法的@ JSR303Validation批注。我目前正在通过传入Validation对象并调用validation.hasBeanViolations()
来查看控制器本身的验证来查看是否存在故障。如果有,我将失败的结果返回给客户端。
我想在控制器中执行此操作,而不是使用Filter验证请求。但是,我不知道如何去做这件事?有人可以帮忙吗?据我所知,您不能将验证作为参数传递给过滤器,而context.getValidation()对象似乎没有捕获任何验证失败。
答案 0 :(得分: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)复制并粘贴该方法。
这不是太复杂。但它并不像控制器中的注释方法那样自动化。