單一 <url-pattern> 標籤只能匹配一種模式,寫 *.htm(l?) 等正則不被支援。
<servlet-mapping>
<servlet-name>spring-mvc</servlet-name>
<url-pattern>*.html</url-pattern>
<url-pattern>*.htm</url-pattern>
<url-pattern>/api/*</url-pattern> <!-- 也可混用路徑前綴 -->
</servlet-mapping>
url-pattern。
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
configurer.addPathPrefix("/api", HandlerTypePredicate.forAnnotation(RestController.class));
}
}
// application.yml
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
static-path-pattern: /resources/**
# 靜態資源 *.html/*.htm 直接放 static/resources 下,無需經 DispatcherServlet
新專案建議採用 Spring Boot 內嵌容器 + 靜態資源分離架構,避免傳統 web.xml 複雜映射。