实际开发中会涉及到大量的页面跳转。我们可以重写addVeiwControllers来简化页面的跳转。
1.继承WebMvcConfigurerAdapter,重写addViewControllers
package com.boot.springmvc;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;
import com.boot.springmvc.interceptor.DemoInterceptor;
/**
* @Bean
public InternalResourceViewResolver viewResolver();
* 注入InternalResourceViewResolver类:
* 说明:springmvc下有一个接口叫ViewResolver,(我们的viewResolver都实现该接口),实现这个接口要重写
* resolverName(),这个方法的返回值接口View,而view的职责就是使用model、request、response对象,并
* 渲染视图(不一定是html、可能是json、xml、pdf等)给浏览器 。
*
*/
@Configuration
@EnableWebMvc // 1开启默认配置
@EnableScheduling
@ComponentScan("com.boot.springmvc")
public class MyMvcConfig extends WebMvcConfigurerAdapter{//2
//viewResolver
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
//viewResolver.setPrefix("/WEB-INF/classes/views/");//打war后默认编译的路径
viewResolver.setPrefix("/WEB-INF/views/");//使用tomcat7:run插件后要放的位置
viewResolver.setSuffix(".jsp");
viewResolver.setViewClass(JstlView.class);
return viewResolver;
}
//静态资源映射
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**").addResourceLocations("classpath:/assets/");
}// 3
//拦截器
@Bean
// 1
public DemoInterceptor demoInterceptor() {
return new DemoInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {// 2
registry.addInterceptor(demoInterceptor());
}
//viewController
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/index1").setViewName("/index1");
}
}
2.index1页面
//viewController
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/index1").setViewName("/index1");
}
重点代码:
//viewController
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/index1").setViewName("/index1");
}
注意:
//viewResolver.setPrefix("/WEB-INF/classes/views/");//打war后默认编译的路径
viewResolver.setPrefix("/WEB-INF/views/");//使用tomcat7:run插件后要放的位置