论坛首页 Java企业应用论坛

Struts2的灵魂——Interceptor

浏览 28825 次
精华帖 (0) :: 良好帖 (12) :: 新手帖 (5) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-03-05  
kidding87 写道
javatozhang 写道
kidding87 写道
javatozhang 写道
楼主对struts2拦截器讲解的非常精妙,抛开什么设计模式和递归,想问问lz一个低级的问题。
问题:struts2 DefaultActionInvocation的部分源码
public String invoke() throws Exception {
   // 。。。。
       if (interceptors.hasNext()) {
                final InterceptorMapping interceptor = (InterceptorMapping) interceptors.next();
                String interceptorMsg = "interceptor: " + interceptor.getName();
                UtilTimerStack.push(interceptorMsg);
                try {
                                resultCode = interceptor.getInterceptor().intercept(DefaultActionInvocation.this);
                            }
                finally {
                    UtilTimerStack.pop(interceptorMsg);
                }
            } else {
                resultCode = invokeActionOnly();
            }
}
//interceptors红色字体实例变量为   public  Iterator<InterceptorMapping>  interceptors 如何保证每次都按照顺序依次迭代 InterceptorMapping对象呢?


就是 ArrayList的 迭代器呗

问该问题时就感觉低级呵呵,的确是Iterator迭代器起的作用。顺便问一下楼主有没有对struts2中18拦截器做详细的分析?


核心就是
ResourceBoundle


lz你说的这个ResourceBoundle貌似是Struts2 or java 处理国际化配置文件*_zh_CN.properties等类似文件的东西,而非处理struts2的核心拦截器的。求教…… 谢谢你!
0 请登录后投票
   发表时间:2013-03-06   最后修改:2013-03-06
从楼主的例子里面看不到递归啊?楼主省略了部分代码没写上去吗?Struts的拦截器有用到递归?我没看过源代码,但感觉不需要用递归啊?

我也模拟了Struts2拦截器的实现:模拟Struts2拦截器
0 请登录后投票
   发表时间:2013-03-06  
xiaoqulai 写道
从楼主的例子里面看不到递归啊?楼主省略了部分代码没写上去吗?Struts的拦截器有用到递归?我没看过源代码,但感觉不需要用递归啊?

我也模拟了Struts2拦截器的实现:模拟Struts2拦截器

你的网站我进去看了看,并且下了你的源代码,可是很遗憾没搞成功!如果你无私直接放你的项目源代码。方便大家学习。
0 请登录后投票
   发表时间:2013-03-07   最后修改:2013-03-07
javatozhang 写道
xiaoqulai 写道
从楼主的例子里面看不到递归啊?楼主省略了部分代码没写上去吗?Struts的拦截器有用到递归?我没看过源代码,但感觉不需要用递归啊?

我也模拟了Struts2拦截器的实现:模拟Struts2拦截器

你的网站我进去看了看,并且下了你的源代码,可是很遗憾没搞成功!如果你无私直接放你的项目源代码。方便大家学习。

http://code.google.com/p/xmvc/downloads/list 这个里面就有啊,就是项目源代码啊。我已经在GAE和SAE上用它来开发我的应用了,你知道的,Struts依赖太多的jar,不适合部署在云端。xmvc-1.0.2-SNAPSHOT.zip 就是源代码和编译好的jar,xmvc-framework-website.zip 就是一个demo.在它里面引入xmvc-1.0.2-SNAPSHOT.zip就可以直接部署到GAE上,如果你在本地跑,是TOMCAT的运行时,去掉GAE的依赖就行了,例如把web.xml里面把关于GAE的servlet去掉
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics