我有一个Spring Boot hello world for web和一些配置混乱:
Spring版本:1.2.6。释放
我的项目结构:
我需要提供一些静态内容,因此我决定在一些自定义WebConfig
类中重新定义此类内容的源目录(用于学习目的):
javadoc for@EnableWebMvc
说:
将此注释添加到@Configuration类将从WebMvcConfigurationSupport导入Spring MVC配置
要自定义导入的配置,请实现接口WebMvcConfigurer,或者更可能扩展空方法基类WebMVCConfigureAdapter并覆盖单个方法,例如:
于是下一个配置类诞生了:
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/r/**").addResourceLocations("classpath:/static/r/");
registry.addResourceHandler("/favicon.ico").addResourceLocations("classpath:/static/r/favicon.ico");
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("forward:/r/diploma/index.html");
registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
super.addViewControllers(registry);
}
}
如果运行应用程序并尝试访问http://localhost:8080/我得到下一个例外:
javax.servlet.ServletException: Could not resolve view with name 'forward:/r/diploma/index.html' in servlet with name 'dispatcherServlet'
但是如果我从我的网络配置中删除@EnableWebMvc
,我就得到了我的索引。浏览器中的html。那么,这种行为的原因是什么呢?
事实上,我有一个生产项目,我用它作为例子来研究,它有两个@EnableWebMvc
您应该添加一个viewsolver
来解析WebConfig
中的视图,如下所示:
@Bean
public InternalResourceViewResolver defaultViewResolver() {
return new InternalResourceViewResolver();
}
当您添加@EnableWebMvc
时,您将关闭所有Spring Boot的Web自动配置,这些配置会自动为您配置这样一个解析器。通过删除注释,自动配置将再次打开,自动配置的ViewResolver解决了这个问题。
本文向大家介绍SpringMVC访问静态资源的方法,包括了SpringMVC访问静态资源的方法的使用技巧和注意事项,需要的朋友参考一下 在SpringMVC中常用的就是Controller与View。但是我们常常会需要访问静态资源,如html,js,css,image等。 默认的访问的URL都会被DispatcherServlet所拦截,但是我们希望静态资源可以直接访问。该肿么办呢? 在配置文件:
Fes.js 基于 html-webpack-plugin在新窗口打开 实现的模板功能,默认 HTML模板 是: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewp
我使用Spring MVC和spring security。我面临的问题是如何在jsp文件中建立静态资源路径。 假设我的应用程序部署在上下文名称 中 假设我想在所有jsp中包含一个文件,所以我为它编写,就像这个。现在会发生什么,如果我访问以下网址: > localhost/ctxt/dashboard(cssOK-浏览器中css的最终url变成=localhost/ctxt/static/css/
我正在尝试使用spring Boot运行一个web应用程序。 将密码映射为硬编码值。 我的问题是:当应用程序运行并且在主类上使用注释时,只要它命中URL就会发生以下异常: javax.servlet.ServletException:在org.springframework.web.servlet.dispatcherservlet.render(dispatcherservlet.java:13
本文向大家介绍java转发和重定向的区别,包括了java转发和重定向的区别的使用技巧和注意事项,需要的朋友参考一下 重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。 与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL
在这上面开个头。文件说明: 默认情况下,Spring Boot将提供来自类路径中名为 /static(或 /public或 /resources或 /META-INF/resources)的目录或ServletContext根目录的静态内容。 并创建一个目录,将静态资源放在那里。当我运行应用程序时,我只得到404。当我删除EnableWebMvc时,资源将按预期提供。 在中添加: 所以我的问题是: