美文网首页
SpringBoot 多模块 jsp

SpringBoot 多模块 jsp

作者: 长孙俊明 | 来源:发表于2019-11-09 19:43 被阅读0次

    项目结构
    module1(如:封装好的一套组织机构、权限、角色、用户管理模块)包含jsp页面,module2(具体业务应用场景开发)依赖module1,结构图如下:

    parent
    │       
    └── module1
    │   │── ...
    │   └── src/main/resources
    │       │── mapper
    │       │── public
    │       │   ...
    │       src/main/webapp
    │       └── WEB-INF
    │            └── jsp
    │
    └── module2
        │   ...
    

    解决方案
    module1和module2的packaging均为jar。
    src/main/resources下静态资源,及src/main/webapp/WEB-INF/jsp通过==resources==打包到META-INF目录下。这里的META-INF指打成jar后,jar里的META-INF。值得注意的是,如果您的mapper位于src/main/resources下,也需要打包出来哦。

    module1's pom.xml的build标签内中添加resources:

    <resources>
        <!-- 打包时将jsp文件拷贝到META-INF目录下-->
        <resource>
            <!-- 指定resources插件处理哪个目录下的资源文件 -->
            <directory>src/main/webapp</directory>
            <!-- 注意必须要放在此目录下才能被访问到-->
            <targetPath>META-INF/resources</targetPath>
            <includes>
                <include>**/**</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources/public</directory>
            <targetPath>META-INF/resources</targetPath>
            <includes>
                <include>**/**</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/**</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
    

    普通项目直接在application.yml中配置即可,多模块项目无效。采用

    WebConfig.java:
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    import org.springframework.web.servlet.view.InternalResourceViewResolver;
    
    @Configuration
    public class WebConfig extends WebMvcConfigurerAdapter {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/**").addResourceLocations("/");
        }
        /**
         * 多模块的jsp访问,默认是src/main/webapp,但是多模块的目录只设置yml文件不行
         * @return
         */
        @Bean
        public InternalResourceViewResolver viewResolver() {
            InternalResourceViewResolver resolver = new InternalResourceViewResolver();
            resolver.setViewClass(org.springframework.web.servlet.view.JstlView.class);
            // jsp目录
            resolver.setPrefix("/WEB-INF/jsp/");
            // 后缀
            resolver.setSuffix(".jsp");
            return resolver;
        }
    }
    

    相关文章

      网友评论

          本文标题:SpringBoot 多模块 jsp

          本文链接:https://www.haomeiwen.com/subject/niinbctx.html