action

    引入拦截器最好的好处就是,实现了对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, 那么就可以使用登录拦截器了。

 

你可能感兴趣的:(action)