天天看點

Java小白翻身-基于SpringBoot的檔案下載下傳系統 2建立一個IndexControllerthymeleaf模闆引擎擷取目錄中所有的檔案

這一步的目标是把目錄中的檔案展示到前台。

建立一個IndexController

@Controller
public class IndexController {

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

}
           

意圖很明顯,就是為了傳回一個叫做index的頁面。

但是,我們現在還沒有index頁面。

thymeleaf模闆引擎

添加依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
           

注意,每次加了新的依賴,一定要maven - reload!

配置頁面路徑:

spring:
  thymeleaf:
    prefix: classpath:/templates/
           

index.html放在這裡

Java小白翻身-基于SpringBoot的檔案下載下傳系統 2建立一個IndexControllerthymeleaf模闆引擎擷取目錄中所有的檔案
<!DOCTYPE html>
<html lang="en"  xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>資源管理</title>
</head>
<body>
  Hello world!
</body>
</html>
           

重新開機項目,通路:http://localhost/

Java小白翻身-基于SpringBoot的檔案下載下傳系統 2建立一個IndexControllerthymeleaf模闆引擎擷取目錄中所有的檔案

成功了。

擷取目錄中所有的檔案

IndexController.java

@Controller
@ConfigurationProperties(prefix = "root")
@Data
public class IndexController {

    private String diskpath;

    @RequestMapping("/")
    public String index(Model m){
        File[] files = FileUtil.ls(diskpath);
        m.addAttribute("files",files);
        return "index";
    }

}
           

加@Data是為了自動生成set方法,這樣才能讓@ConfigurationProperties(prefix = “root”)自動去讀取yml中的資料。

添加一個依賴,至于為什麼要添加,這個在SpringBoot教程裡面講過了。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <version>2.5.1</version>
    <optional>true</optional>
</dependency>
           

注意版本号得是2.5.1,不寫版本号預設去下載下傳2.5.2了,我的idea預設的maven下載下傳不到這個jar,估計是源頭倉庫就沒有。

這個問題讓站長糾結了好半天。

修改後的index.html

<!DOCTYPE html>
<html lang="en"  xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>資源管理</title>
</head>
<body>
  <ul>
      <li th:each="file:${files}" th:text="${file.getName()}"></li>

  </ul>
</body>
</html>
           

效果:

Java小白翻身-基于SpringBoot的檔案下載下傳系統 2建立一個IndexControllerthymeleaf模闆引擎擷取目錄中所有的檔案

醜一點沒關系,我們先把功能給實作了。

轉載自:http://java18.cn/