在我的 Spring MVC 應用程式中,我想使用基于 java 注釋的配置來提供靜態資源。
我有一個用@Configuration、@EnableWebMvc 和@ComponentScan 注釋的配置類,我的類正在實作WebMvcConfigurer。
//set up view
@Bean
public InternalResourceViewResolver viewResourceViewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/view/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// TODO Auto-generated method stub
registry
.addResourceHandler("/URLToReachResources/**")
.addResourceLocations("/WEB-INF/resources/");
}
看看我的 ServletInitilazier
public class MacsCloneApplicationIntitalizer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
// TODO Auto-generated method stub
//create a dispatcher servlet object
AnnotationConfigWebApplicationContext webApplicationContext = new AnnotationConfigWebApplicationContext();
webApplicationContext.register(MacsCloneAppConfig.class);
//register dispatcher servlet to context
DispatcherServlet dispatchServlet = new DispatcherServlet(webApplicationContext);
ServletRegistration.Dynamic myCustomServlet = servletContext.addServlet("myDispatchServlet",
dispatchServlet);
//configurations
myCustomServlet.setLoadOnStartup(1);
myCustomServlet.addMapping("/customercare/*");
}
這就是我構建應用程式的方式

不知道哪里出錯了,我在創建專案時使用了maven-archtype-webapp 1.0 版,并使用了 Spring WebMvc 5.3.22 作為 Web 依賴項。
這就是我的 JSP 的樣子并且我的資源沒有被加載。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>MIS Portal</title>
<link href="<c:url value="/URLToReachResources/css/ie.css"/>" rel="stylesheet" type="text/css"/>
<link href="<c:url value="/URLToReachResources/css/um.css"/>" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="headerimg"><img src="<c:url value="/URLToReachResources/images/topstripo2_11.jpg"/>" alt="靜態資源加載失敗 - Spring MVC" /><a href="/home"><img src="<c:url value="/URLToReachResources/images/misportal.jpg"/>" border="0" style="margin-left: 2em" alt="靜態資源加載失敗 - Spring MVC"/></a></div>
<!-- <p ><a href="home.do?method=displayHomePage"><bean:message key="home"/></a></p>-->
<br />
<tiles:insert attribute="left-nav" />
<tiles:insert attribute="body-content" />
<br class="clear" />
<hr />
<label class="footer">Delivered by O2 ISD - Data Delivery - GAS Team</label>
</body>
</html>
提前致謝。
uj5u.com熱心網友回復:
我能夠使用 AbstractAnnotationConfigDispatcherServletInitializer 類解決上述問題。
public class MacsCloneApplicationIntitalizer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
// TODO Auto-generated method stub
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
Class arr[] = { MacsCloneAppConfig.class };
return arr;
}
@Override
protected String[] getServletMappings() {
String arr[] = { "/customercare/*" };
return arr;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/516560.html
