浏览 2209 次
锁定老帖子 主题:Controller 层拦截器设计的思考
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-08-09
1. 定义一个拦截器类 2. 接着将其配置到struts.xml文件中 3. 接着还要将这个拦截器放到你想拦截的action配置中 神那,搞什么…. 一个拦截器而已…. 还有一种普遍的需求是,几个Action方法调用前都要获取一个对象A,然后这个对象在action中接着用。这个时候struts的机制就有点为难了。 在我看来,拦截器也是可以在使用普通的方法和声明来实现的。比如同一个类里 ``` class C { @BeforeFilter private final static Map $b = map(only, list("a","c")); public void a(){ } public void c(){ } public void d(){ } private void b(){ } } ``` @BeforeFilter 声明,当执行a,c方法的时候,先调用b方法。我们可以看到,拦截器就是一个简单的私有方法。通过@BeforeFilter 声明拦截 那些方法。把这些被拦截的方法升级为action的时候,这个私有的b方法就是一个纯种的拦截器了。 对于跨controller的拦截器,你可以定义在父类。其实就是把b移动到父类上即可。 是否非常简单呢?而且能解决我之前提到的对象共享的问题。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |