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版本的说明。