我需要知道是否有任何方法可以从以下位置调用web.xml
的弹簧控制器:
<error-page>
<exception-type>org.demo.exceptions.InvalidSessionException</exception-type>
<location>/login.jsp</location>
</error-page>
我创建了一个名为InvaliSessionException
的自定义异常类,
通常我们会从<location>
标记中调用一些jsp页面,但我需要做的是调用auth/login
等登录控制器,即<location>/auth/login</location>
。
有没有办法实现这个目标?
InvaliSessionException.java
public class InvalidSessionException extends NullPointerException
{
private static final long serialVersionUID = 1L;
public String getMessage()
{
return "No user logged in.";
}
public int getExceptionType()
{
return -1;
}
}
答案 0 :(得分:1)
执行此操作的首选方法是在Spring上下文中添加“Global Exception Handler”,而不是尝试从web.xml重新输入Spring上下文。
您可以通过在上下文中配置org.springframework.web.servlet.handler.SimpleMappingExceptionResolver bean来实现此目的。设置exceptionMappings属性,该属性包含此解析程序应该处理的异常列表,对于每个异常,请提及应向用户显示的视图。
这使设计保持清洁和可维护。