Struts 2当用户插入不存在的动作时该怎么做

在Struts 2应用程序中,当用户插入与您的任何操作无关的URL时,会出现java.lang.NullPointerException

在这些情况下,我想显示一个漂亮的屏幕,所以我已经添加到我的struts.xml

     /WEB-INF/jsp/exception.jsp  

但它不起作用。 我也尝试过没有成功

  /WEB-INF/jsp/exception.jsp  

所以,我开始认为所有的URL都必须与一个动作对应,否则当用户插入与任何动作不对应的URL时,没有机制来处理这些情况(所以这个机制是处理由NullpointerException引起的您现有的一个动作,而不是一个不存在的动作。

干得好 :

   

如果未找到匹配项,将调用此操作。

我在所有应用程序中都使用它来避免日志中出现意外错误/警告。

文档

实际上exception是由exception拦截器捕获的, exception拦截器是defaultStack中的第一个拦截器,它允许处理不仅在操作中而且在拦截器调用期间发生的exception。

为此,您已经定义了一个配置。

如果输入的URL未映射到任何操作配置,通常调度程序将返回404错误代码。 如果在该结果之前得到NullPointerException ,那么项目配置就会出错。

如果没有堆栈跟踪,很难说出发生了什么。 但是如果你想处理发出未知URL而不是之前处理它的调度程序的情况,那么你应该看看这个可以帮助你定义unknownHandler

阅读有关具有此function的支持Struts版本的说明。