2016-07-06 47 views
0

私はSpringブートを使用しており、htmlファイル "index.html"を持っています。クラス "Functions"を持っています。基本的には、function-classが実行され、localhost:8080に行くと、htmlテンプレートがlocalhostに現れます。 どうすればよいですか?ここでSpringブートでlocalhostにhtmlファイルを表示させる方法は?

は、機能クラスのセグメントである:

public class Functions{ 
    @RequestMapping("/") 
    public void getHomepage(){ 
     //Return the html-template 
    } 

}

のhtmlファイルが「index.htmlを」と呼ばれ、SRC /メイン/リソース/静電気フォルダにあるさ。

ありがとうございました!

+1

'getHomepage()'メソッドの本体に 'return 'index"; 'を入れます。この[Spring Web MVC入門](https://spring.io/guides/gs/serving-web-content/)チュートリアルを参照してください。テンプレートは 'src/main/resources/static'の代わりに' src/main/resources/templates'になければなりません。 – Jesper

+0

ありがとうございました!私は今それを試してみます – user3257736

+1

@ジェスパーは権利があります。このチュートリアルに基づいてプロジェクトを作成しました。とても役に立ちました。https://springframework.guru/spring-boot-web-application-part-1-spring-initializr/ –

答えて

2

まず、index.htmlテンプレートファイルをsrc/main/resources/staticの代わりにsrc/main/resources/templatesに入れます。

クラスFunctionsは、Spring MVCコントローラでなければなりません。 @Controllerアノテーションを追加することでコントローラにすることができます。 getHomepage()方法でテンプレートの名前を返します:

@Controller 
public class Functions { 
    @RequestMapping("/") 
    public String getHomepage() { 
     return "index"; 
    } 
} 

これは、すべての基本的な春のWeb MVCです。このWebサイトのServing Web Contentガイドとreference documentationのチュートリアルを参照してください。

+0

チュートリアルを詳しく見ていきます。 戻り値の型をStringに変更したときに@Controllerを追加し、 "templates"に "index.html"を入れました。しかし、コードをコピーしてlocalhostに行くと、画面上のインデックスだけが表示されます。ストリングのように。私はまだhtmlが表示されません。 – user3257736

+1

クラス 'Functions'やメソッド' getHomepage() 'で' @ RestController'や '@ ResponseBody'を使ったのですか、Springの設定を変更してデフォルトの方法で動作しないのですか? – Jesper

+0

もう一度お返事ありがとうございます!私はこれらのことをしていない。 私はspring-boot-starter-thymeleafの依存関係をmavenに入れても、Spring BootはTymeleafを認識していないようです。私がhtmlファイルに行き、名前空間xmlns:th = "http://www.thymeleaf.org"を見ると、名前空間宣言は決して使用されないと言われています。 – user3257736

関連する問題