论坛首页 Java企业应用论坛

Struts2的灵魂——Interceptor

浏览 28827 次
精华帖 (0) :: 良好帖 (12) :: 新手帖 (5) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-03-24  
beijishiqidu 写道
请教楼主一个问题。我修改密码的时候我在Action中做的验证,然后提示失败,请求转发到一个JSP提示,然后输入正确的,但是还是报原来的错误,而且也没有进拦截器,我想问的就是:从Action请求转发到一个JSP后再到原来的Action。这段过程还过不过拦截器!,求楼主解答!

指教不敢当,共同学习吧!Struts中定义了很多种页面跳转类型,请求转发dispatcher是其中之一,此外还有redirect、chain、redirectAction等。关键看欲跳转到一个页面还是一个action,只有请求一个action的时候才会被拦截器拦截。你的具体情况我不了解,所以也不便多言。朋友!
0 请登录后投票
   发表时间:2012-03-26  
你重定向试试 redirect
0 请登录后投票
   发表时间:2012-05-28  
自己感觉吧,应该会进拦截器,因为你第二次执行的时候,请求的是一个action,因此会进拦截器的,你可以在拦截器代码里面加上一句话测试一下就行了,我这里没环境,测试不了,如果我说的不对一定要告诉我呦
0 请登录后投票
   发表时间:2012-05-29  
interceptor就是拦截器。
0 请登录后投票
   发表时间:2012-07-03  
通俗易懂,不错。
0 请登录后投票
   发表时间:2012-07-17  
这个程序跟命令模式没有一点关系吧。明明就是巧妙地利用递归
0 请登录后投票
   发表时间:2013-03-04  
楼主对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对象呢?
0 请登录后投票
   发表时间:2013-03-04  
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的 迭代器呗
0 请登录后投票
   发表时间:2013-03-05  
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拦截器做详细的分析?
0 请登录后投票
   发表时间:2013-03-05  
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

0 请登录后投票
论坛首页 Java企业应用版

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