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

 

程序员应该如何去请教别人问题

程序员应该如何提问
  • java_weekly
  • java_weekly
  • 2017年05月31日 17:34
  • 302

【Struts2】:Interceptor的配置和使用

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

Struts2 拦截器(Interceptor )原理和配置

一、Struts2拦截器原理: Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的    拦截器对象,然后串成一个列...
  • voins
  • voins
  • 2016年08月05日 17:10
  • 3229

struts2默认拦截器之autowiring

在struts2的struts-default.xml中定义了一个name为autowiring拦截器,实现类是com.opensymphony.xwork2.spring.interceptor.A...
  • wyxz126
  • wyxz126
  • 2013年03月01日 23:03
  • 919

struts2拦截器interceptor的三种配置方法

1、struts2拦截器interceptor的三种配置方法 方法1. 普通配置法 package name="struts2" extends="struts-def...
  • xyw591238
  • xyw591238
  • 2016年07月19日 10:45
  • 5476

教务管理系统-Struct2注解使用拦截器(Interceptor)

Struct2注解添加拦截器Interceptor
  • u011499992
  • u011499992
  • 2016年05月31日 15:48
  • 1732

struts2 角色权限 filter(过滤器)和interceptor(拦截器)

Struts2项目通过使用Struts的if标签进行了session判断,使得未登录的用户不能看到页面,但是这 种现仅仅在view层进行,如果未登录用户直接在地址栏输入登录用户才能访问的地址,那么相应...
  • qq_35503293
  • qq_35503293
  • 2017年04月14日 18:01
  • 131

Struts2中获取Request,Response的几种方法

在Struts2中的没有像Struts1那样必须要在Action类中写个execute()方法,只需要是个返回字符串的方法即可(有时候也不需要返回值),在struts2中经将原有的servlet中re...
  • alan_liuyue
  • alan_liuyue
  • 2017年05月03日 14:48
  • 380

structs2中interceptor(拦截器)的种类

Interceptor是Structs2的基石
  • Anyu_Li
  • Anyu_Li
  • 2014年08月14日 11:43
  • 879

Struts2拦截器设置例外情况

权限拦截器如下: /** * 权限拦截器 * 拦截非登录用户 * @author Administrator * */ public class AuthorInterceptor ext...
  • WingBin
  • WingBin
  • 2014年04月18日 14:58
  • 3861
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:struts2 interceptor 问题(请教高手)
举报原因:
原因补充:

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