struts2 interceptor 问题(请教高手)

原创 2007年10月08日 18:35:00

今天写了一个自定义拦截器.却遇到了以下问题

package dgut.ke.interceptors;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;

import dgut.ke.model.Catalog;
import dgut.ke.model.Publish;
import dgut.ke.model.Subject;
import dgut.ke.service.ICatalogService;
import dgut.ke.service.IPublishService;
import dgut.ke.service.ISubjectService;

public class AddBookInterceptor extends MethodFilterInterceptor {

 /**
  *
  */
 private static final long serialVersionUID = 1135497226250835266L;

 private ISubjectService subjectService ;
 private ICatalogService catalogService ;
 private IPublishService publishService ;

 public ICatalogService getCatalogService() {
  return catalogService;
 }

 public IPublishService getPublishService() {
  return publishService;
 }

 public ISubjectService getSubjectService() {
  return subjectService;
 }

 public void setCatalogService(ICatalogService catalogService) {
  this.catalogService = catalogService;
 }

 public void setPublishService(IPublishService publishService) {
  this.publishService = publishService;
 }

 public void setSubjectService(ISubjectService subjectService) {
  this.subjectService = subjectService;
 }

 @Override
 protected String doIntercept(ActionInvocation invoation) throws Exception {
  // TODO 自动生成方法存根
  System.out.println("-------- 拦截器开始执行 ----------");
  List<Subject> subject_list = (ArrayList<Subject>)subjectService.findAll();
  List<Catalog> catalog_list = (ArrayList<Catalog>)catalogService.findAll();
  List<Publish> pubish_list =  (ArrayList<Publish>)publishService.findAll();

  //ActionContext act = ActionContext.getContext() ;
  ActionContext act = invocation.getInvocationContext() ;
  HttpServletRequest request = (HttpServletRequest) act.get(ServletActionContext.HTTP_REQUEST) ;
  request.setAttribute("subject_list", subject_list) ;
  request.setAttribute("catalog_list", catalog_list) ;
  request.setAttribute("publish_list", pubish_list) ;
  System.out.println("-------- 拦截器执行结束 ----------");
  return Action.INPUT;
 }

}
为了实现request.setAttribute(String str, Object obj) ;.最先是让上面的类实现ServletRequestAware 接口.
但是在运行的时候却出现了空指针异常。后来改成以上的代码就可以正常运行,但是还是
不太明白
曾经在一本书上看到一段话:构建interceptor最重要的原则:interceptor必须是无状态的,并且不能
够使用任何ActionInvocation提供范围以外的API

 

问题请教高手

  • 2009年03月10日 15:02
  • 53KB
  • 下载

【Struts2】:Interceptor的配置和使用

在之前的博客中,介绍了Struts2的内建拦截器和自定义拦截器的一些内容,但是有了这些自带和自定义的拦截器之后,如何去配置和使用,还没有跟大家详细说明,接下来我们就一起学习一下,Struts2中Int...
  • u010929604
  • u010929604
  • 2016-05-31 15:50:15
  • 2671

【Struts2】:自定义Interceptor

虽然Struts2框架提供了许多的拦截器,并且这些内建的拦截器实现了Struts2的大部分功能,因此,大部分的Web应用的通用功能,都可以通过直接使用这些拦截器来完成,但是还是有一些系统逻辑相关的通用...
  • u010929604
  • u010929604
  • 2016-05-17 21:39:55
  • 702

Struts2中Interceptor拦截器的使用

1 Struts2中拦截器的原理
  • ghuiL
  • ghuiL
  • 2014-11-11 13:52:36
  • 1207

Struts2自定义Interceptor

1.继承类AbstractInterceptor import javax.servlet.http.HttpServletRequest; import org.apache.struts2...
  • unei66
  • unei66
  • 2013-07-11 15:22:04
  • 5151

Struts2中的(Interceptor)拦截器的执行顺序

Interceptor的接口定义没有什么特别的地方,除了init和destory方法以外,intercept方法是实现整个拦截器机制的核心方法。而它所依赖的参数ActionInvocation则是我们...
  • qq_35503293
  • qq_35503293
  • 2017-04-14 17:07:08
  • 227

Webbrowser控件 怎么样禁用ActiveX

http://www.itzhe.cn/article/20080528/146926.html Webbrowser控件 怎么样禁用ActiveX 2008-05-28 05:52:22   来源...
  • skyremember
  • skyremember
  • 2008-10-22 14:53:00
  • 2425

struts2随笔(一)Action、struts.xml、Interceptor细节

Struts2由Struts1和webWork两个经典MVC框架发展起来。与传统的Struts1相比,Struts2允许使用不同的Java对象作为Action。支持更多的视图技术,基于AOP思想的拦截...
  • liuhenghui5201
  • liuhenghui5201
  • 2014-02-28 21:11:02
  • 3069

Struts2默认拦截器(AliasInterceptor)的使用及源码阅读

别名拦截器(action属性传递拦截器) 定义 摘自网络:该拦截器主要作用是将一个参数别名成为另一个参数,在不同的action之间相似的参数(但是不同名)扮演着胶水的角色。——action之间的参...
  • techbirds_bao
  • techbirds_bao
  • 2012-12-06 11:03:09
  • 1673

CATTI 三级笔译考试准备

考试攻略 推荐一本词汇书——《考研英语真题核心词汇速成胜经》,是清华大学硕士印建坤主编的,里面归纳的有考研核心词汇的具体考点,把里面这些内容记牢,基本上就不成问题了。 推荐一套教材——《CATTI官...
  • lm3306
  • lm3306
  • 2013-07-01 20:34:35
  • 424
收藏助手
不良信息举报
您举报文章:struts2 interceptor 问题(请教高手)
举报原因:
原因补充:

(最多只允许输入30个字)