欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

action

程序员文章站 2024-03-21 08:24:22
...

    引入拦截器最好的好处就是,实现了对action通过操作的可插拔管理,这样的可插拔管理基于struts.xml文件来配置实现。

下面看看,到底怎么来配置拦截器的呢。

 

<interceptors>
	<!-- 基本拦截器的配置--!>
	<interceptor name = "alias" class = "com.opensymphony.xwork2.interceptor.AliasInterceptor" />
	<interceptor name = "autowiring" class = "com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor" />	
	
	</interceptor>
</interceptors>

    在struts中,内置的拦截器其实已经能够完成大部分的拦截任务,为了学习,下面我们看下自定义的拦截器要怎么使用:要自定义拦截器类,必须直接或间接实现Interceptor接口:

 

public interface Interceptor extends Serializable {  
  
    void destroy();  
  
    void init();  
  
    String intercept(ActionInvocation invocation) throws Exception;  
}  
public class LoginInterceptor extends AbstractInterceptor{

	private static final long serialVersionUID = -5325530121178579784L;

	public String intercept(ActionInvocation ai) throws Exception {
		Map session = ai.getInvocationContext().getSession();
		String username = (String)session.get("user");
		if(username != null && username.length() > 0){
			return ai.invoke();
		}else{
			ActionContext ac = ai.getInvocationContext();
			ac.put("abc", "未登录");
			return Action.INPUT;
		}
	}

}

    只要再像上面配置文件一样配置下action, 那么就可以使用登录拦截器了。