springboot怎么以静态资源方式访问jsp

问题描述

手上有个Spring的老项目,代码里很多都是以/pages/**/*.jsp的形式直接访问页面,现在要移到SpringBoot,但怎么也做不到将jsp作为静态资源访问的方式。。

相关代码

这几个目录我都放了jsp页面,但凡访问到一个,也不会404...

  • /src/main/resources/static/pages/demo.jsp
  • /src/main/webapp/pages/demo.jsp
  • /src/main/webapp/WEB-INF/pages/demo.jsp

spring-mvc配置代码:

@Configuration
public class WebMvcAutoConfiguration extends WebMvcConfigurationSupport {
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        // register /** resource handler.
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/");

    }
}

pom.xml jsp相关依赖

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-jsp-api</artifactId>
    <version>9.0.24</version>
</dependency>
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-servlet-api</artifactId>
    <version>9.0.24</version>
</dependency>
<dependency>

你期待的结果是什么?

不经过controller层,直接访问到jsp页面————比如访问/pages/demo.jsp,跳转到pages目录下 demo.jsp

阅读 3.1k
2 个回答

jsp 是 servlet。 不大可能做为 静态资源访问吧。。。 我觉得从方向上,就已经错了

新手上路,请多包涵

@RequestMapping
@Controller
public class PageController {

@RequestMapping(value = "/page/**/*.jsp")
public String page(HttpServletRequest request) {
    String pattern = (String) request
    .getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
    String searchTerm = new AntPathMatcher().extractPathWithinPattern(
            pattern, request.getServletPath());
    return searchTerm.substring(0, searchTerm.length() - 4);
}

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题