在控制器里,定义拦截器方法。拦截器将被控制器类及后代的所有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{
......
}