et-mvc可以使用三种过滤器,分别是BeforeFilter, AfterFilter, AroundFilter,通过相应的注解作用在控制器上,可用的注解有@BeforeFilter, @BeforeFilters, @AfterFilter, @AfterFilters, @AroundFilter, @AroundFilters。
过滤器是在Action执行之前或之后执行的一个方法,可以理解为是控制器的拦截器。
前置过滤器和后置过滤器使用相同的方法原型,如
private boolean showInfo(){ System.out.println(controllerName+":"+actionName); return true; }
如果返回true,则继续执行后续代码,如果返回false则中断所执行的方法。
环绕过滤器必须实现AroundHandler接口,如下所示
public class MyAroundFilter implements AroundHandler{ public boolean before(Controller controller){ System.out.println("before exec"); return true; } public boolean after(Controller controller){ System.out.println("after exec"); return true; } }
将过滤器通过注解作用在控制器上:
@BeforeFilter(execute="showInfo") @AroundFilter(execute=MyAroundFilter.class) public class ApplicationController extends Controller{ private boolean showInfo(){ System.out.println(controllerName+":"+actionName); return true; } }
这样,任何继承于ApplicationController的控制器都安装了以上过滤器,也可以在指定的控制器上安装指定的过滤器。过滤器默认对所有的Action有效,如果需要指定对那些Action有效,可以使用except, only等参数。
关于etmvc的详细资料,请访问www.etmvc.cn