Struts2框架注册自定义拦截器抛出异常问题求助
修复步骤
- 修复拦截器初始化/销毁方法
你的自定义拦截器中init()和destroy()方法默认抛出了UnsupportedOperationException,Struts2初始化拦截器实例时会主动调用init()方法,直接抛出异常会导致拦截器注册失败。将两个方法改为空实现即可:
@Override public void destroy() { // 无销毁需求可直接留空 } @Override public void init() { // 无初始化需求可直接留空 }
- 补充Java类包声明
你在struts.xml中配置的拦截器和Action类路径均为MyActions.xxx,但你提供的MyInterceptor.java和Login.java代码都没有添加包声明,会导致类加载失败。在两个Java类的第一行添加包声明:
package MyActions;
- 补全struts.xml配置头
你提供的struts.xml缺失了XML声明和DOCTYPE头,会导致配置文件解析失败,补全开头部分:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
- 给首页Action绑定拦截栈(满足访问首页前触发拦截器的需求)
目前你仅给login动作绑定了自定义拦截栈,首页对应的default动作没有绑定,访问首页时不会触发拦截器。修改struts.xml中default动作的配置:
<action name="default"> <interceptor-ref name="mystack"/> <result>index.jsp</result> </action>
内容的提问来源于stack exchange,提问作者Aziz Ullah
相关产品推荐
相关产品推荐

