【发布时间】:2018-03-10 23:23:29
【问题描述】:
我已经尝试根据用户代理更改视图的前缀。
如果请求来自 IE,则尝试将其转发到“旧”文件夹,否则将其转发到“现代”文件夹。
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
internalResourceViewResolver.setViewClass(JstlView.class);
internalResourceViewResolver.setSuffix(".jsp");
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
if(request.getHeader("User-Agent").contains("Internet Explorer")){
internalResourceViewResolver.setPrefix("/WEB-INF/views/legacy/");
} else {
internalResourceViewResolver.setPrefix("/WEB-INF/views/modern/");
}
return internalResourceViewResolver;
}
它根本不起作用。有人可以推荐吗?
【问题讨论】:
-
不要使用
ViewResolver,只需编写HandlerInterceptor并在postHandle方法中实现该逻辑。
标签: spring spring-mvc spring-annotations