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:ポート番号/
でブラウザでアクセスできる.