Exception 为什么从我的拦截器引发的异常未被<;全局异常映射>;?

Exception 为什么从我的拦截器引发的异常未被<;全局异常映射>;?,exception,struts2,struts-config,struts2-interceptors,struts2-convention-plugin,Exception,Struts2,Struts Config,Struts2 Interceptors,Struts2 Convention Plugin,我有一个自定义拦截器,从中抛出一个异常 运行该拦截器的操作由约定插件管理 拦截器引发的异常在struts.xml中全局定义,用于运行操作的包 结果:异常映射被忽略,我得到 Struts问题报告 Struts检测到未处理的异常: ... Stacktraces java.lang.IllegalArgumentException:我的消息 我想我只是错过了一些愚蠢的事情。。。我们已经讨论过这一点,但仍不清楚它是否能以这种方式工作: struts.xml /WEB-INF/content/my-

我有一个自定义拦截器,从中抛出一个异常

运行该拦截器的操作由约定插件管理

拦截器引发的异常在struts.xml中全局定义,用于运行操作的包

结果:异常映射被忽略,我得到

Struts问题报告

Struts检测到未处理的异常:

...
Stacktraces

java.lang.IllegalArgumentException:我的消息

我想我只是错过了一些愚蠢的事情。。。我们已经讨论过这一点,但仍不清楚它是否能以这种方式工作:

struts.xml


/WEB-INF/content/my-input.jsp
/WEB-INF/content/my-error.jsp
行动

@ParentPackage(“我的包”)
@命名空间(“/my/blabla/yadayada”)
公共类MyAction扩展了MyBaseAction{
}
拦截器

@覆盖
公共字符串截获(ActionInvocation ActionInvocation)引发异常{
// ....
如果(出了什么事){
抛出新的非法辩论例外(“只工作不玩耍,聪明孩子也变傻”);
}
}
我还尝试在抽象BaseAction或物理真实动作本身中定义全局结果/全局异常映射,但它们也被忽略。


有没有关于如何添加/删除/更改以使其正常工作的想法?这不是深奥的东西,这是基本的:|

异常映射功能的主要候选对象是引发异常的操作

:

异常映射是处理引发异常的操作类的强大功能。其核心思想是,可以自动捕获操作方法期间引发的异常,并将其映射到预定义的结果

但是从拦截器抛出的异常也可以由
exception
拦截器处理。为了捕获其他拦截器异常,应将拦截器定义为堆栈中的第一个拦截器

例外应用程序接收器

建议您将此拦截器设置为堆栈上的第一个拦截器,以确保它具有捕获任何异常(即使是由其他拦截器引起的异常)的完全访问权限


2.3.16.3(由于与struts2 jquery插件3.7.1不兼容,无法更新到2.3.20…等待4.0.0),因此没有任何方法将拦截器返回的异常映射到已知结果?我可以从拦截器返回一个结果,但它将不再与项目配置分离。。。如果我返回一个异常,它可以被映射或不映射(因此可以被美化或原始显示),而如果我返回一个结果,它应该在配置中定义。。。顺便说一句,将其添加为答案,这样我就可以对其进行投票并(很可能)接受主题:…与struts2 jquery插件3.7.1的不兼容性您知道其中的任何一个吗?我刚刚升级了一个带有s2 jqr功能的应用程序,它似乎运行良好。。。目前为止我想起来了,但我没有试过。。。我现在正在做。我不太使用s2 jqr插件,所以我不能确定所有功能都正常工作,但是日期选择器和对话框都很好。关于2.3.20的更新和此问题,请参见。祝你更新顺利。它把我的拦截器放在第二位,在
异常之后。非常感谢。