当前位置: 首页 > 知识库问答 >
问题:

Spring framework自定义404错误特定案例

马新觉
2023-03-14

如果我在URL路径中包含webApp根目录myweb,我就能够获得自定义404错误页面-

http://localhost/myweb/users/david

我在web中添加了以下条目。获取自定义404页面的xml-

<error-page>
    <error-code>404</error-code>
    <location>/WEB-INF/jsp/pageNotFound.jsp</location>
  </error-page>

然而,当我点击下面的URL时,仍然会看到Spring默认的404错误页面-

http://localhost/users/david

为什么在URL路径中没有webApp根目录时它不能工作?有没有任何方法可以得到相同的自定义404找不到这个页面以及?

共有1个答案

卫才
2023-03-14

在我的例子中,我使用SpringMVC4创建了客户控制器ErrorController。

我设置了下一个web配置。xml。

<error-page>
    <location>/errors</location>
</error-page>

下一个我创建了控制器。我和大家一起上课。(ModelAndView是my.jsp(exception/errorPage)的路径)。

@Controller
public class ErrorController {
 
    @RequestMapping(value = "errors", method = RequestMethod.GET)
    public ModelAndView renderErrorPage(HttpServletRequest httpRequest, ModelMap model) {
         
        ModelAndView errorPage = new ModelAndView("exception/errorPage");
        String errorMsg = "";
        String customerMsg = "";
        
        int httpErrorCode = getErrorCode(httpRequest);
 
        switch (httpErrorCode) {
            case 400: {
                errorMsg     = "Http Error Code: 400. Bad Request";
                customerMsg  = "";
                break;
            }
            case 401: {
                errorMsg     = "Http Error Code: 401. Unauthorized";
                customerMsg  = "";
                break;
            }
            case 403: {
                errorMsg = "Http Error Code: 403. access denied";
                customerMsg  = "";
                break;
            }
            case 404: {
                errorMsg = "Http Error Code: 404. Resource not found";
                customerMsg  = "";
                break;
            }
            case 500: {
                errorMsg = "Http Error Code: 500. Internal Server Error";
                customerMsg  = "";
                break;
            }
        }
      
        errorPage.addObject("errorMsg", errorMsg);
        errorPage.addObject("customerMsg", customerMsg);
        return errorPage;
    }
     
    private int getErrorCode(HttpServletRequest httpRequest) {
        return (Integer) httpRequest
          .getAttribute("javax.servlet.error.status_code");
    }
}

共享基本错误页面。jsp

<!DOCTYPE html>
<html lang="es">
<head>
    <title>Error</title>
</head>
<body>
    
    <table>
        <tr>
            <td>
                <h1>${errorMsg}</h1>
            </td>
        </tr>
        <tr>
            <td>
                <h1>${customerMsg}</h1>
            </td>
        </tr>
        <tr>
            
        </tr>
    </table>
</body>
</html>

我希望这个例子能帮助你。

 类似资料:
  • 问题内容: 在我的Spring Boot应用程序中,我试图配置自定义错误页面,例如404,我在应用程序配置中添加了以下Bean: 此外,我还创建了以下简单的Thymeleaf模板: 并将其添加到文件夹中。现在,在404错误上,我只能看到白屏。 我在做什么错以及如何正确设置404页面?此外,是否可以将模板而不是仅将静态页面用于自定义错误页面? 问题答案: 在Spring Boot 1.4.x中,你可

  • 在我的Spring Boot应用程序中,我试图配置自定义错误页,例如,对于404,我在应用程序配置中添加了以下Bean: 此外,我还创建了以下简单的Thymeleaf模板: 并将其添加到文件夹中。现在关于404错误,我只能看到白色屏幕。 我做错了什么?如何正确设置404页面?另外,是否可以使用模板而不仅仅是静态页面来定制错误页面?

  • 问题内容: 完全按照此处找到的教程进行操作,我无法创建自定义500或404错误页面。如果我确实输入了错误的网址,则该页面会显示默认的错误页面。有什么我应该检查的内容,以防止显示自定义页面? 文件目录: 在mysite / settings.py中,我启用了以下功能: 在mysite / polls / urls.py中: 我可以发布任何其他必要的代码,但是如果我使用了错误的网址,应该如何更改以获得

  • 有人能帮我解决这个该死的pagenavi问题吗?我一直在尝试在stackoverflow和其他论坛上找到的所有可能的解决方案,但当我想访问pagenavi的第二页时,仍然会遇到404错误。 我尽可能地精简了代码。这应该管用,对吧? 更多信息:我正在使用一个自定义页面模板,网站上不同的自定义帖子类型,还有一个博客,其中包括panenavi(确实有效)。我也尝试重置永久链接每次我改变代码,也没有帮助。

  • 本文向大家介绍APACHE 自定义404错误页面设置方法,包括了APACHE 自定义404错误页面设置方法的使用技巧和注意事项,需要的朋友参考一下 方法一:   在httpd.conf中设置对目录开启。    AllowOverride All   然后在目录里放一个.htaccess(.htaccess),添加:   errorDocument 404 /404.php 1.这个的内容根据你的情

  • 这里有一些代码来表明我的意图(Meter是一个域类): 我想出了几种处理这个问题的方法。首先,有可能创建类似 然后使用异常处理程序来呈现自定义的errorpage(可能包含到仪表列表的链接或任何合适的内容)。 但是使用这个解决方案,我必须重复许多控制器方法的前5行(如edit、delete)。 有没有一种优雅的方法来防止重复这些行很多次?