我尝试用弹簧4设置索引页面两天。 经过多次尝试,我得到了一段有效的代码 但我不明白它为什么会起作用。
你能告诉我原因吗?
public class MyWebApplicationInitializer
extends AbstractAnnotationConfigDispatcherServletInitializer
{
protected Class<?>[] getRootConfigClasses() {
return new Class[] {AplicationConfig.class};
}
protected Class<?>[] getServletConfigClasses() {
return new Class[] {WebConfiguration .class};
}
protected String[] getServletMappings() {
return new String[] {"/"};
}
}
这是我找到的代码片段
// @Bean
// public InternalResourceViewResolver internalResourceViewResolver() {
// InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
// viewResolver.setPrefix("/WEB-INF/html/");
// viewResolver.setSuffix(".html");
// return viewResolver;
// }
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/*.html").addResourceLocations("/WEB-INF/html/");
super.addResourceHandlers(registry);
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController( "/" ).setViewName( "forward:/index.html" );
// registry.setOrder( Ordered.HIGHEST_PRECEDENCE );
// super.addViewControllers( registry );
}
1)为什么InternalResourceViewResolver不起作用?
2)addResourceHandler和addViewController如何工作?这些路径是什么?
3)如何将css和javascripts文件添加到索引页面?喜欢
<link href="/css/bootstrap.min.css" rel="stylesheet">
页面加载但没有css和javascript文件
我要感谢所有帮助过我的人,因为我是春天的新手,谢谢你们。
答案 0 :(得分:0)
仅配置InternalResourceViewResolver不足以提供静态html。您还需要通过控制器绑定路径以提供页面。因为这只是一个静态页面,你可以用它来做 addViewControllers。
registry.addViewController( “/”)setViewName( “索引”)。
2
addResourceHandlers:添加处理程序以提供静态资源,例如来自Web应用程序根目录下的特定位置的图像,js和css文件,类路径等。
addViewControllers:配置预先配置了响应状态代码的简单自动控制器和/或呈现响应主体的视图。这在不需要自定义控制器逻辑的情况下很有用 - 例如呈现主页,执行简单的站点URL重定向,返回带有HTML内容的404状态,带有无内容的204等等。
3
要使资源(js,css,img)可用,您需要在addResourceHandlers方法中添加以下配置。
registry.addResourceHandler("/css/**").addResourceLocations("/css/");
registry.addResourceHandler("/js/**").addResourceLocations("/js/");
registry.addResourceHandler("/img/**").addResourceLocations("/img/");
然后要在JSP页面中包含css或js,您可以使用JSTL标记c:url或Spring标记spring:url。
<link href="<c:url value="/css/styles.css" />" rel="stylesheet">
<spring:url value="/css/styles.css" var="mainCss" />
<link href="${mainCss}" rel="stylesheet" />