本文介绍: 配置文件形式针对框架进行个性化定制,例如:拦截器,类型转化器等等。WebMvcConfigurer配置类其实是。内部的一种配置方式,采用。
添加日期转换器(Converter)
public class DataConverter implements Converter<String, Date> {
@Override
public Date convert(String s) {
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
return simpleDateFormat.parse(s);
}catch (Exception e){
e.printStackTrace();
return null;
}
}
}
配置日期转换器(WebMvcConfigurer)
-
说明
WebMvcConfigurer配置类其实是
Spring
内部的一种配置方式,采用JavaBean
的形式来代替传统的xml
配置文件形式针对框架进行个性化定制,例如:拦截器,类型转化器等等。 -
代码示例
@Component
public class SpringMVCConfig implements WebMvcConfigurer {
//注册日期格式转换
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new DataConverter());
}
}
添加拦截器(HandlerInterceptor)
public class LoginInterceptor implements HandlerInterceptor {
/**
* 在控制器方法调用前执行
* 返回值为是否中断
* true:表示继续执行(下一个拦截器或处理器)
* false:则会中断后续的所有操作,所以我们需要使用response来继续响应后续请求
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("==============handler执行前调用interceptor================");
//判断用户是否登录
User userLogin = (User) request.getSession().getAttribute("userLogin");
if (userLogin != null) {
return true;//执行下一个interceptor 或 handler
}
response.sendRedirect("/login.jsp");
return false;//不放行
}
/**
* 在控制器方法调用后,解析视图前调用,我们可以对视图和模型做进一步渲染或修改
* 可在modelAndView中加入数据,比如当前时间
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
}
/**
* 整个请求完成,即视图渲染结束后调用,这个时候可以做些资源清理工作,或日志记录
*/
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
}
}
配置拦截器(WebMvcConfigurer)
@Component
public class SpringMVCConfig implements WebMvcConfigurer {
//日期格式转换
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new DataConverter());
}
//注册拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
/*
* addPathPatterns():要拦截的内容
* excludePathPatterns():要放行的内容
* */
registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**").excludePathPatterns("/user/login").excludePathPatterns("/");
}
}
原文地址:https://blog.csdn.net/m0_74007708/article/details/135630235
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_57784.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。