WebMVC模块基于YMPv2.0的新特性,原生支持AOP方法拦截,通过以下注解进行配置:
@Before:用于设置一个类或方法的前置拦截器,声明在类上的前置拦截器将被应用到该类所有方法上;
@After:用于设置一个类或方的后置拦截器,声明在类上的后置拦截器将被应用到该类所有方法上;
@Clean:用于清理类上全部或指定的拦截器,被清理的拦截器将不会被执行;
@ContextParam:用于设置上下文参数,主要用于向拦截器传递参数配置;
@Ignored:声明一个方法将忽略一切拦截器配置;
说明: 声明@Ignored注解的方法、非公有方法和Object类方法及Object类重载方法将不被拦截器处理。
示例代码:
// 创建自定义拦截器
public class UserSessionChecker implements IInterceptor {
public Object intercept(InterceptContext context) throws Exception {
// 判断当前拦截器执行方向
if (context.getDirection().equals(Direction.BEFORE)
&& WebContext.getRequest().getSession(false) == null) {
return View.redirectView("/user/login");
}
return null;
}
}
@Controller
@RequestMapping("/user")
@Before(UserSessionChecker.class)
public class Controller {
@RequestMapping("/center")
public IView userCenter() throws Exception {
// ......
return View.jspView("/user/center");
}
@RequestMapping("/login")
@Clean
public IView userLogin() throws Exception {
return View.jspView("/user/login");
}
}相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
共5课时
17.2万人学习
共49课时
77万人学习
共29课时
61.7万人学习
共25课时
39.3万人学习
共43课时
70.9万人学习
共25课时
61.6万人学习
共22课时
23万人学习
共28课时
33.9万人学习
共89课时
125万人学习