Play框架的拦截器

在控制器里,定义拦截器方法。拦截器将被控制器类及后代的所有action调用。

这些方法必须是static的,但不能是public的,并使用有效的拦截注释。

@Before

用@Before注释的方法将在控制器的每个action前被调用执行

public class weixinIntercept extends Controller{
    @Before(unless="login") //""中写的是方法的具体位置,例:wechat.account.wechatInformation
    static void check(){
        if(session.get("user") == null)
            login();
    }
}
/*
    可以使用unless和only,还可以使用@After,@Before,@Finally注释
*/

控制器继承:

如果一个控制器类是其他控制器类的子类,那么会按照继承顺序应用于相应的子类。

使用@With注释添加更多的拦截器

public class Security extends Controller{
    @Before
    protected static void checkAuthentic(){
        if(!session.containsKey("user"){
            unAuthen();
        }
    }
}


//另一个控制器
@With(Security.class)
public class Admin extends Controller{
    ......
}
发布了15 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/J_M_S_H_T/article/details/88292407