zoukankan      html  css  js  c++  java
  • Spring MVC自定义错误页面

    在web.xml中添加:

    <error-page(其他属性404...省略咯)>
        <location>/error</location>
    </error-page>
    web.xml

    添加控制器:

    @Controller
    public class ErrorController
    {
        @RequestMapping(path = "/error", produces = MediaType.APPLICATION_JSON_VALUE)
        public ModelAndView handle(HttpServletRequest request)
        {
            System.out.println("ERROR");
            ModelAndView modelAndView = new ModelAndView("error");
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("status", request.getAttribute("javax.servlet.error.status_code"));
            map.put("reason", request.getAttribute("javax.servlet.error.message"));
            modelAndView.addObject("map", map);
     
            return modelAndView;
        }
    }
    ErrorController

    视图:

    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        ${map}
    </body>
     
    </html>
    jsp

    这里说一下:

    produces = MediaType.APPLICATION_JSON_VALUE

    它的作用是指定返回值类型,不但可以设置返回值类型还可以设定返回值的字符编码;

    还有一个属性与其对应,就是consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

    他们的使用方法如下:

    一、produces的例子

    produces第一种使用,返回json数据,下边的代码可以省略produces属性,因为我们已经使用了注解@responseBody就是返回值是json数据:

    @Controller 
    @RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, produces="application/json") 
    @ResponseBody 
    public Pet getPet(@PathVariable String petId, Model model) { 
    // implementation omitted 
    }

    produces第二种使用,返回json数据的字符编码为utf-8.:

    @Controller  
    @RequestMapping(value = "/pets/{petId}", produces="MediaType.APPLICATION_JSON_VALUE"+";charset=utf-8")  
    @ResponseBody  
    public Pet getPet(@PathVariable String petId, Model model) {      
        // implementation omitted  
    }  

    二、consumes的例子(方法仅处理request Content-Type为“application/json”类型的请求。)

    @Controller  
    @RequestMapping(value = "/pets", method = RequestMethod.POST, consumes="application/json")  
    public void addPet(@RequestBody Pet pet, Model model) {      
        // implementation omitted  
    }  
  • 相关阅读:
    Eclipse之JSP页面的使用
    Eclipse拷贝动态的web工程修改context root的值
    Redis的Cluster配置
    企业大数据战略定位
    批处理引擎MapReduce编程模型
    Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice)
    Listary 文件操作神器
    TextMesh Pro SpriteAsset Load From Assetbundle
    TextMesh Pro Emoji Align With Text(表情和文字对齐)
    使用Mkdocs构建你的项目文档
  • 原文地址:https://www.cnblogs.com/But-you/p/9718417.html
Copyright © 2011-2022 走看看