全局异常处理
全局异常处理使用两个注解来实现,@ControllerAdvice 和 @ExceptionHandler,如下:
//全局异常处理
@RestControllerAdvice
public class ExceptionProcessor {
@ExceptionHandler({Exception.class})
public Result<Exception> handleException(Exception e) {
return Result.ok(e, -1, "通用异常");
}
@ExceptionHandler({BizException.class})
public Result<BizException> handleException(BizException e) {
return Result.ok(e,e.getState(),e.getMessage());
}
}
```java
//自定义异常类,带状态码和错误信息,其中错误信息复用父类的message字段
public class BizException extends RuntimeException{
private int state;
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
public BizException(int state, String message) {
super(message);
this.state = state;
}
}
日期处理
后端日期处理样例:
public class Contract {
@DateFormat("yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date start;
}
前端vue日期格式, format控制前端显示格式,value-format控制向后端传送的格式(值的格式)
<el-data-picker v-model="start"
type="date"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期" ></el-data-picker>
写入cookie数据
Cookie cookie = new Cookie("token", token);
cookie.setPath("/");
response.addCookie(cookie);
document.cookie = "token="+res.data.data;