整合Freemarker视图层和整合jsp视图层和全局捕获异常
Posted 言西早石头侠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了整合Freemarker视图层和整合jsp视图层和全局捕获异常相关的知识,希望对你有一定的参考价值。
SpringBoot静态资源访问
1.静态资源:访问 js / css /图片,传统web工程,webapps
springboot 要求:静态资源存放在resource目录下(可以自定义文件存放)
2.整合Freemarker视图层
使用Freemarker模板引擎渲染web视图
pom文件引入
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>
3.创建SpringBoot整合jsp,一定要为war类型
不要把jsp页面存放在resource目录下 ,可能产生被别人访问到,jsp不能被别人访问
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<!-- springboot 外部tomcat支持 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>test</scope>
</dependency>
4.SpringBoot整合全局捕获异常
相当于整个web请求项目全局捕获异常 ,错误记得存放在日志中
使用Aop技术,采用异常通知
//全局捕获异常案例
//@ExceptionHandler--拦截错误
//1.捕获返回json格式
//@ResponseBody--返回json格式
//@modeAndView--返回视图页面
//2.捕获返回页面
应用场景:
//如果每个方法都可能会发生异常,每个方法都加上try不好 采用全局捕获异常 @RequestMapping("/hello") public String hello(int i) { try { int j=1/i; }catch (Exception e) { return "系统错误"; } return "success"; }
package com.example.demo.controller.error; import java.util.HashMap; import java.util.Map; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; @ControllerAdvice(basePackages="com.example.demo.controller") public class ErrorHandler { @ExceptionHandler(RuntimeException.class) @ResponseBody//返回json格式 public Map<String, Object> errorResult(){ Map<String, Object> error=new HashMap<String, Object>(); error.put("errorcode", "500"); error.put("errormsg", "全局捕获异常系统错误"); return error; } }
以上是关于整合Freemarker视图层和整合jsp视图层和全局捕获异常的主要内容,如果未能解决你的问题,请参考以下文章
SpringMVC--07 视图解析器&整合freemarker
SpringMVC--07 视图解析器&整合freemarker