【问题标题】:How to show exceptions from controller on the same page?如何在同一页面上显示来自控制器的异常?
【发布时间】:2011-08-24 04:12:37
【问题描述】:

首先我想说我是 Spring 和 Spring MVC 的新手。

这是我的问题:

我正在使用 Spring 3.0 来执行此操作。 事件:用户点击我主页上的链接。 输出:我必须在我的主页上显示一条错误消息“服务不可用”(以防控制器抛出错误)。

目前我只想在没有任何业务逻辑的情况下模拟这个场景,所以我想在我的主页上有一个链接,当我点击它时,它应该转到总是抛出异常的控制器。我需要做的就是捕捉这个异常并在我的 Jsp 页面上显示为“服务不可用”。

我在网上搜索过,但找不到分步教程来执行此操作...请指导我。

【问题讨论】:

    标签: java spring jakarta-ee spring-mvc exception-handling


    【解决方案1】:

    您可能还想查看Documentation about handling exceptions

    使用注释的默认策略基于@ExceptionHandler:如果您想通过示例进行学习,您可能需要 google 一下。

    【讨论】:

    • 太好了!这正是我一直在寻找的。但我无法在 JSP 页面上显示错误...
    • @Soni - 是的,你可以:你只需要在你的注释方法中添加一个异常类型的参数(Spring会在处理异常时为你填充它),然后像往常一样将它注入你的模型中.
    【解决方案2】:

    我需要做的就是捕捉这个异常并在我的 Jsp 页面上显示为“服务不可用”。

    @RequestMapping(value = "/homepage", method = RequestMethod.GET)
    public ModelAndView doStuff() 
    {
        try
        {
           throw new MyException();
           //return new ModelAndView("myJsp");
        }
        catch (MyException e)    
        {
            return new ModelAndView("myJsp", "exception", e);       
        }
    }
    

    jsp:

    ...
    <c:if test="${not empty exception}">Service not avilable</c:if>
    

    【讨论】:

    • 非常感谢您为我指明方向。我能够抛出异常,但 ${not empty exception} 似乎不起作用,有什么提示吗?
    • @Soni Mishra:“不工作”是什么意思 - 它总是打印“服务不可用”还是从不打印? -- 为了更深入地理解问题,您可以随时打印异常变量 (${exception}),这可能有助于了解变量是否未设置或 if 约​​束未按预期工作。
    • ${not empty exception} 什么也不打印。抱歉回复晚了。我将尝试使用 ${exception} 看看它是否有效。
    • @Soni Mishra:尝试&lt;c:out value="${exception}" /&gt;(在 if 块之外)检查 (糟糕的调试) 变量是否正确填充。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多