1

我需要知道是否有任何方法可以web.xml从以下位置调用弹簧控制器:

<error-page>
    <exception-type>org.demo.exceptions.InvalidSessionException</exception-type>
    <location>/login.jsp</location>
</error-page>

我创建了一个名为 as 的自定义异常类InvaliSessionException,通常我们从<location>标签中调用一些 jsp 页面,但我需要做的是调用登录控制器,例如auth/loginie <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;
}
}
4

1 回答 1

1

执行此操作的首选方法是在 Spring 上下文中添加“全局异常处理程序”,而不是尝试从 web.xml 重新进入 Spring 上下文。

您可以通过在上下文中配置 org.springframework.web.servlet.handler.SimpleMappingExceptionResolver bean 来实现这一点。使用此解析器应处理的异常列表设置 exceptionMappings 属性,并为每个异常提及应向用户显示的视图。

这使设计保持清洁和可维护。

于 2013-04-19T11:27:09.387 回答