1. 程式人生 > >在Idea中使springboot支援jsp頁面

在Idea中使springboot支援jsp頁面

第一步:新建一個專案

推薦使用這個,預設下一步就好,

填寫自己的資訊,next,

選擇使用的功能,也可以新建好之後再pom.xml裡手動新增,

選擇專案存放地址,一個springboot的專案就建好了。下邊需要匯入相應的依賴包,pom.xml如下:

複製程式碼
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
> <modelVersion>4.0.0</modelVersion> <groupId>com.clark</groupId> <artifactId>spring-boot-web</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <parent> <groupId>org.springframework.boot</
groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> </parent> <name>spring-boot-web</name> <url>http://maven.apache.org</url> <properties> <java.version>1.8</java.version
> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- servlet 依賴包 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> <!-- JSTL (JSP standard Tag Library) JSP 標準標籤庫 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!-- Tomcat的支援 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <!-- <scope>provided</scope>--> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <!-- <scope>provided</scope>--> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
複製程式碼

下一步是配置application.properties中,只需要新增這2個就可以了

#頁面預設字首目錄
spring.mvc.view.prefix=/WEB-INF/jsp/
#頁面預設字尾目錄
spring.mvc.view.suffix=.jsp

application.yml中:spring節點下面

mvc:
  view:
    prefix: /WEB-INF/jsp/
    suffix: .jsp

接下來需要新建一個檔案,在src\mian\webapp,在下邊新建一個WEB-INF/jsp檔案,在這個下邊新建一個jsp頁面,

不用去管那個web.xml.,一會在其他地方配置的時候會自動出現,hello.jsp,最好將編碼改為UTF-8,

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>My first Spring boot web demo</title>
</head>
<body>
<h2>Hello ${name}</h2>
</body>
</html>
HelloController程式碼
package sprintboot;

import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {

    @RequestMapping("/index")
    @ResponseBody
    public String index() {
        return "index";
    }

    @RequestMapping("/name")
    public String name(Map<String, Object> map) {
        map.put("name", "Clark");

        System.out.println("============================================");
        return "hello";
    }

}

輸出一句,看看是否進入到這個方法,算是代替日誌的作用吧 。注意一定要將這個Controller放在啟動類的同包或者子包下,否則掃描不到。現在可以啟動專案去試試,但是訪問頁面的時候會報404錯誤,控制到會列印============,說明已經進入方法,在跳轉的時候出錯。下邊要配置idea的東西,

選到這個,

選擇modules,點選+號,新增

然後就是這個樣子,下邊就是要更改這些資訊,

更改這2處地方,預設的是web,要更改為src\main\webapp,配置好之後,上文提到的web.xml就自動出現了,不需要去更改。然後去重啟專案,在頁面就能正常訪問了,這個是springboot1.5.6和1.5.7都可以使用。如果是springboot1.4.4的話不需要配置最後一步也能訪問,但是1.5.*不配置就會出錯,

 昨天晚上測試看一下,打成war可以訪問,打成jar會出現404,如果要打包的話,最後設定為war包