Spring BootでThymeleafと@Controllerのデータ送受信する方法をご紹介します。
Thymeleaf
まずThymeleafで送信処理を書きます。ここはHTMLと同じです。
<form type="post" name="sampleFormName" action="./sampleFormAction" id="sampleFormId"> <input type="text" name="sampleData" value="Hello World!"> <button type="submit" name="sampleFormSubmit"></button> </form>
@Controller
続いて@Controllerを書きます。Thymeleafの送信処理を受け止めます。
@Controller
public class HelloController {
@RequestMapping(value = "/sampleFormAction", method = RequestMethod.POST)
public ModelAndView helloWorld(
@RequestParam(name = "sampleData") String sample
ModelAndView mav) {
mav.addObject("message", sample);
mav.setViewName("index");
return mav;
}
}
Thymeleafのテンプレートとデータを合成してHTMLを作成して返却します。
ModelAndViewがテンプレートとデータの合成先です。ModelAndViewに対してsetViewNameでテンプレートを設定、ModelAndViewに対してaddAttributeでデータを設定します。そうして合成されたModelAndViewをreturnで返却します。
Thymeleaf
再びThymeleafです。@Controllerで作成されたHTMLを表示します。
<p th:text="${message}"></p>
これで完了です。