MyEclipse下SpringBoot+JSP整合過程及踩坑

剛開始學習SpringBoot,記錄一下舊項目整合到SpringBoot時遇到的問題(後續踩的坑也會持續加入)java

PS:經過查看他人博客本身東拼西湊出來的,不必定徹底正確,請謹慎對待web

1:打包爲jar或war後發現jsp文件沒法訪問或404等:spring

  可能緣由1:controller控制類不在啓動類所在的目錄下的或子目錄中apache

  可能緣由2:訪問網址直接使用ip:端口號/url就行,不須要加項目名!!!api

  可能緣由3:資源文件不在打包的範圍內,須要在build標籤內進行配置。具體配置在整合過程當中有說明瀏覽器

 

整合過程:tomcat

舊項目的頁面使用jsp完成,可是SpringBoot對於jsp的支持較差,須要額外添加依賴。mvc

1:登陸https://start.spring.io下載模板,根據需求添加所需的依賴。我的搭建demo使用的是jdk1.8,maven版本是3.5.4,IDE爲MyEclipse2017C1.app

 

 

2:MyEclipse下導入demo,選擇Existing Maven Projectswebapp

 

 

 導入完畢後的目錄結構如圖所示():

 

 

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仍是挺爽的。

相關文章
相關標籤/搜索