zoukankan      html  css  js  c++  java
  • MyEclipse下SpringBoot+JSP整合过程及踩坑

    刚开始学习SpringBoot,记录一下旧项目整合到SpringBoot时遇到的问题(后续踩的坑也会持续加入)

    PS:通过查看他人博客自己东拼西凑出来的,不一定完全正确,请谨慎对待

    1:打包为jar或war后发现jsp文件无法访问或404等:

      可能原因1:controller控制类不在启动类所在的目录下的或子目录中

      可能原因2:访问网址直接使用ip:端口号/url就行,不需要加项目名!!!

      可能原因3:资源文件不在打包的范围内,需要在build标签内进行配置。具体配置在整合过程中有说明

    整合过程:

    旧项目的页面使用jsp完成,但是SpringBoot对于jsp的支持较差,需要额外添加依赖。

    1:登录https://start.spring.io下载模板,根据需求添加所需的依赖。个人搭建demo使用的是jdk1.8,maven版本是3.5.4,IDE为MyEclipse2017C1.

    2:MyEclipse下导入demo,选择Existing Maven Projects

     导入完毕后的目录结构如图所示():

    3:将project转换为WebProject:项目上右键并选择properties并勾选为Dynamic Web Module,点击箭头3所指的地方进行根目录的配置。

     

    设置根目录名为src/main/webapp,记得勾选自动生成web.xml。

     

    4:pom.xml中添加对jsp和tomcat的依赖,还需要在build标签内添加对资源文件的编译配置。

     添加依赖:

     1      <dependency>
     2             <groupId>org.apache.tomcat.embed</groupId>
     3             <artifactId>tomcat-embed-jasper</artifactId>
     4             <scope>provided</scope>
     5         </dependency>
     6          <dependency>
     7            <groupId>javax.servlet</groupId>
     8                 <artifactId>javax.servlet-api</artifactId>
     9                 <scope>provided</scope>
    10      </dependency>
    11      <dependency>
    12                 <groupId>org.springframework.boot</groupId>
    13                 <artifactId>spring-boot-starter-tomcat</artifactId>
    14                 <scope>provided</scope>
    15      </dependency>

    自定义资源文件的编译位置,附上完整的build标签内的内容:

    <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <!-- jsp打包必须限定此版本号 -->
                    <version>1.4.2.RELEASE</version>
                </plugin>
            </plugins>
            <!-- 自定义资源文件的打包方式及编译位置 -->
            <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</directory>
                    <includes>
                        <include>**/**</include>
                    </includes>
                    <filtering>false</filtering>
                </resource>
                <resource>
                    <directory>src/main/java</directory>
                    <!-- 资源文件需要排除java文件 -->
                    <excludes>
                        <exclude>**/*.java</exclude>
                    </excludes>
                </resource>
            </resources>
        </build>

    记得右键——>Maven——>UpdateProject.

     此时如果src/main/webapp不是sourcefolder可以右键选择该文件夹——>BuildPath——》Use as sourcefolder

    5:添加Controller,在application.xml中添加springmvc的视图解析器的前后缀

    @Controller
    public class HelloController {
        @RequestMapping("/hello")
        public String Hello(){
            return "Hello";
        }
        
    }

     此时的目录结构:

      

      通过maven的clean install命令先清除后安装。控制台提示build success 。

    打包方式可以在pom.xml中的packaging标签中设置(jar或者war等)。随后可以在工作空间该项目下的target目录找到打包好的文件,在maven的本地仓库也可以找到。

    cmd进入jar包所在目录之后,java -jar demo.jar即可完成启动。

    浏览器访问即可:不要加项目名

    附上测试可用的demo:

    链接: https://pan.baidu.com/s/1nRSJ_iXekjoA_VbvGg90kg 密码: 3irb

    最后说一句:相比于传统的SSH或者SSM整合之类的配置地狱,SpringBoot还是挺爽的。

    与坚持梦想者同行
  • 相关阅读:
    axure 用中继器实现下拉多选框
    excel 常用全局变量
    win10 x64 python3.6 pycharm 安装statsmodels
    Oracle 10进制转36进制
    概念数据模型设计与逻辑数据模型设计、物理数据模型设计的关系
    does not support ASP.NET compatibility 错误
    Oracle日志文件管理与查看
    oradmin相关用法
    Oracle Standby Database 实现方案
    c# 调用zebra打印指令 打印到USB端口
  • 原文地址:https://www.cnblogs.com/ForsakenCoder/p/9562236.html
Copyright © 2011-2022 走看看