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