NutzCN Logo
问答 又来请教关于aop的问题
发布于 12天前 作者 Saviour 71 次浏览 复制 上一个帖子 下一个帖子
标签:

最近玩了下nutz-plugins-validation,发现每个方法入口都要处理Errors,好累....
然后重写了ValidationProcessor,做了统一处理

public void process(ActionContext ac) throws Throwable {
UTF8JsonView json = new UTF8JsonView(JsonFormat.compact());
json.setData(data);
ac.setMethodReturn(json);
renderView(ac);
return;
}

好使了,但是又发现每个方法入口又多了个没有使用的Errors es,看着好别扭
那么用aop来处理吧
定义一下

public @interface Validated {
}

@Validated @Param("..") User userInfo
然后懵逼了,没思路了

Errors es = new Errors();
        for (int i = 0; i < annotations.length; i++) {
            Annotation[] annotation = annotations[i];
            for (Annotation anno : annotation) {
                if (anno.annotationType() == Validated.class) {
                    av.validate(args[i], es);
                    ActionContext ac = Mvcs.getActionContext();
                    UTF8JsonView json = new UTF8JsonView(JsonFormat.compact());
                    json.setData(es);
                    ac.setMethodReturn(json);
                   //不知如何返回到视图了
                    return;
                }
            }
        }

校验完毕后,无法返回视图了
ValidationProcessor renderView(ac);
还请兽总给点思路

2 回复

或者可以像spring那样直接return value

果然可以,ok了
chain.setReturnValue(ServiceResult.error());

添加回复
请先登陆
回到顶部