在使用纯 Java Based Configuration 开发 Spring MVC 应用程序时,我们可以通过使我们的应用程序配置类扩展WebMvcConfigurerAdapter类并覆盖addViewControllers方法来设置主页,我们可以在其中设置默认主页,如下所述。
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "com.myapp.controllers" })
public class ApplicationConfig extends WebMvcConfigurerAdapter {
@Bean
public InternalResourceViewResolver getViewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/view/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("home");
}
}
它返回home.jsp
可以用作主页的视图。无需创建自定义控制器逻辑即可返回主页视图。
addViewControllers方法的 JavaDoc说 -
配置预先配置了响应状态代码和/或视图以呈现响应正文的简单自动化控制器。这在不需要自定义控制器逻辑的情况下很有用——例如呈现主页、执行简单的站点 URL 重定向、返回带有 HTML 内容的 404 状态、没有内容的 204 等等。
第二种方式- 对于静态 HTML 文件主页,我们可以在我们的配置类中使用下面的代码。它将index.html
作为主页返回 -
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("forward:/index.html");
}
第三种方式- 下面的请求映射“/”也将返回home
视图,该视图可用作应用程序的主页。但推荐以上方式。
@Controller
public class UserController {
@RequestMapping(value = { "/" })
public String homePage() {
return "home";
}
}