指定したテンプレートファイルが読み込まれない現象が起きてしまっています。
以下は、HeloController.javaです
package com.test.springboot; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; // import javax.transaction.Transactional; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; // import org.springframework.web.servlet.ModelAndView; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import com.shinya.springboot.repositories.MyDataRepository; @Controller public class HeloController{ @Autowired MyDataRepository repository; @RequestMapping(value = "/",method = RequestMethod.GET) public ModelAndView index(@ModelAttribute("formModel") MyData mydata,ModelAndView mav){ mav.setViewName("index"); mav.addObject("msg","this is sample content."); Iterable<MyData> list = repository.findAll(); mav.addObject("data",list); System.out.println("ok"); return mav; } @RequestMapping(value="/",method=RequestMethod.POST) @Transactional(readOnly=false) public ModelAndView form(@ModelAttribute("formModel") MyData mydata,ModelAndView mav){ repository.saveAndFlush(mydata); return new ModelAndView("redirect:/"); } } class DataObject{ private int id; private String name; private String value; public DataObject(int id, String name, String value){ super(); this.id = id; this.name = name; this.value = value; } public int getId(){ return id;} public void setId(int id){ this.id = id;} public String getName() { return name;} public void setName(String name){ this.name = name; } public String getValue(){ return value; } public void setValue(String value){ this.value = value; } }
以下は、index.htmlです
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>top page</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <style> h1{ font-size:18pt; font-weight:bold; color:gray; } body{ font-size:13pt; color:gray; margin:5px 25px;} tr { margin:5px;} th{ padding:5px; color:white; background:darkgray;} td{ padding:5px;color:black;background:#e0e0ff;} </style> </head> <body> <h1 th:text="#{content.title}">Helo page</h1> <table> <form method="post" action="/" th:object="${formModel}"> <tr> <td><label for="name">名前</label></td> <td><input type="text" name="name" th:value="*{name}"></td> </tr> <tr> <td><label for="age">年齢</label></td> <td><input type="text" name="age" th:value="*{age}"></td> </tr> <tr> <td><label for="mail">メール</label></td> <td><input type="text" name="mail" th:value="*{mail}"></td> </tr> <td><label for="memo">メモ</label></td> <td><textarea name="memo" th:text="*{memo}" cols="20" rows="5"></textarea> </tr> <tr> <td></td><td><input type="submit"></td> </tr> </form> </table> <hr/> <table> <tr><th>ID</th><th>名前</th></tr> <tr th:each="obj : ${datalist}"> <td th:text="${obj.id}"></td> <td th:text="${obj.name}"></td> </tr> </table> </body> </html>
実行は、「Eclipse」より実行させ、アクセスはブラウザに「http://localhost:8080/」と打ち込み行いました。
その結果は以下になります。
明らかに、index.htmlのマークダウンで登録してある内容とは異なる表示がされています。
「templates」フォルダ内には、他に「index.html」ファイルは存在しない状態です。
行なったこととしては、ブラウザの更新、キャッシュの削除とハード再読み込み、spring devtoolsの導入、Eclipseの再起動、などしましたが結果は同じでした。
こちらの現象の解決方法がありましたら、教えて貰えたら幸いです。
実行環境:
Eclipseのバージョン: Version: 2019-12 (4.14.0)
OS: MacOSMojave
追記
「templates」フォルダ内の「index.tpl」を削除しましたら、以下の表示に変わりました。
HeloController内の「index」メソッド内の「System.out.println("ok");」ここの部分Eclipseのコンソールに出力されていることから、indexメソッド内にリクエストは渡ってきていることは確認できています
追記2
下記はpom.xmlです。
<?xml version="1.0" encoding="UTF-8"?> <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.shinya.springboot</groupId> <artifactId>MyBootApp</artifactId> <version>0.0.1-SNAPSHOT</version> <name>MyBootApp</name> <description>Demo project for Spring Boot</description> <properties> <java.version>8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-groovy-templates</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
回答2件
あなたの回答
tips
プレビュー