我使用Netbeans创建Spring MVC Web应用程序。我有一个简单的控制器和JSP视图。除了不呈现的图像之外,JSP视图正确显示。我的目录结构如下所示:
enter image description here 在我的* .jsp页面中,未呈现的图像被引用如下:
在Spring MVC中,我应该在哪里放置JSP视图引用的文件,如图像,CSS,JS等?
我像这样应用了AppConfig文件。
public void addResourceHandlers(ResourceHandlerRegistry registry) {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/view/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
答案 0 :(得分:1)
您为AppConfig
发布的代码是。 。 。令人困惑和语法无效。
实现这一目标的一种简单方法就是这样
@Configuration
public class AppConfig extends WebMvcConfigurationSupport {
//locate and serve .jsp resources
@Bean
public InternalResourceViewResolver getInternalResourceViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/view/");
resolver.setSuffix(".jsp");
return resolver;
}
//locate our static resources and serve them
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**").addResourceLocations(
"/WEB-INF/assets/");
}
}
然后可以通过http://the.domain/apppath/assets
答案 1 :(得分:1)
添加这些行以指定静态资源的路径。
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**").addResourceLocations("/WEB-INF/assets/")
}
等效的XML配置:
<mvc:resources mapping="/assets/**" location="/WEB-INF/assets/" />
然后在你的* .jsp页面中你可以这样做,例如:
<link href="<c:url value="assets/css/myCss.css" />" rel="stylesheet">
<script src="<c:url value="assets/js/myJs.js"/>"></script>
答案 2 :(得分:0)
在<mvc:default-servlet-handler />
申请中启用Spring MVC
。您可以使用注释启用,如下所示:
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
或 XML 中:
<mvc:default-servlet-handler/>
要了解更多信息,请查看need and use of mvc:default-servlet-handler