war { enabled = true archiveName='demo.war' // <-ここはプロジェクトに合わせて書き換えてください }
package jp.kobespiral.hello; import java.util.ArrayList; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller public class HelloController { private ArrayList<String> list = new ArrayList<>(); @GetMapping("{name}/hello") public String SayHelloRequestParam(@PathVariable String name, Model model) { model.addAttribute("greeting", createGreetingMessage()); model.addAttribute("name", name); return "hello"; } @PostMapping("{name}/hello/add") public String addHello(@PathVariable String name, @RequestParam("text") String text, Model model) { list.add(text); model.addAttribute("greeting", text); model.addAttribute("name", name); return "post_hello"; } private String createGreetingMessage() { String greeting = ""; for (String s : this.list) { greeting = greeting + s + "、"; } return greeting; } }
<!DOCTYPE html> <html lang="ja" xmlns:th="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8" /> <title>Hello Spring Boot</title> <link rel="stylesheet" th:href="@{/css/hello.css}" /> </head> <body> <h1>Hello Spring Boot!</h1> <div class="balloon1"> <p th:text="${greeting}"></p> <p>[[${name}]]さん、Spring Bootへようこそにゃ!</p> </div> <div> <img th:src="@{/img/cat.jpg}" /> </div> <br /> <form action="./add" method="post"> <div> <label for="text">あいさつを追加</label> <input name="text" id="text" /> <button>追加</button> </div> </form> </body> </html>
.balloon1 { position: relative; display: inline-block; margin: 1.5em 0; padding: 7px 10px; min-width: 120px; max-width: 100%; color: #555; font-size: 16px; background: #c3f69d; border-radius: 15px; } .balloon1:before { content: ''; position: absolute; top: 100%; left: 50%; margin-left: -15px; border: 15px solid transparent; border-top: 15px solid #c3f69d; } .balloon1 p { margin: 0; padding: 0; }
<!DOCTYPE html> <html lang="ja" xmlns:th="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8" /> <title>Hello SpringBoot</title> </head> <body> <h1>あいさつを追加しました!</h1> <p>[[${name}]]さん、あいさつ文「[[${greeting}]]」を追加しました!</p> <button type="button" onclick="location.href='./'">戻る</button> </body> </html>
./gradlew.bat war
2020-06-03 中村
これまではWebサービスやWebアプリの作成を想定して, warファイルを作るプロジェクトを学んできた.
この時,
$ ./gradlew.bat war
作成されるwarは,Tomcatサーバのwebappsフォルダに デプロイし運用するものである.
その一方で,Webサーバにデプロイせずにローカルの マシンで実行可能なwar(実行可能WAR)も作ることができる.
gradle でターゲットbuildを指定する.
$ ./gradlew.bat build
プロジェクトのbuild/libsに,
hogehoge-SNAPSHOT0.0.1.war
ができるので,それをターミナルからJavaで実行する
$ java -jar hogehoge-SNAPSHOT0.0.1.war
warの中にWebサーバが入っていて,
http://localhost:ポート番号/
でブラウザでアクセスできる.