jfinal 拦截器怎么拦截返回的json数据

2025-03-22 01:58:10
推荐回答(1个)
回答1:

Interceptor 可以对方法进行拦截,并提供机会在方法的前后添加切面代码,实现 AOP 的核心目标。Interceptor 接口仅仅定义了一个方法 public void intercept(Invocation inv)。以下是简单示例:

public class DemoInterceptor implements Interceptor {
    public void intercept(Invocation inv) {
       try {
           inv.invoke();
           Render r = inv.getController().getRender();
     if (r instanceof JsonRender) {
 String JsonText = ((JsonRender)r).getJsonText();
// JsonText 处理
     }
} catch (Exception e) {
//异常处理
}  
    }
}

以上代码中的 DemoInterceptor 将拦截目标方法,并且在目标方法调用前后向控制台输出文本。inv.invoke() 这一行代码是对目标方法的调用,在这一行代码的前后插入切面代码可以很方便地实现AOP。

注意:必须调用 inv.invoke() 方法,才能将当前调用传递到后续的 Interceptor 与 Action。

--3.4版本