X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fdemo%2FDemoController.java;h=59cc3defc91de1d8633bcbff063e05eb670e4000;hb=804d85a8ec9c52c570320f1e3a135b5bc8019d1d;hp=b84178097aeae2495b80db7fd87cc4da53cdcc9d;hpb=9de876c5fb510a0ec6ec439aaa371673d6382c58;p=demos%2Fspring-boot diff --git a/src/main/java/de/juplo/demo/DemoController.java b/src/main/java/de/juplo/demo/DemoController.java index b841780..59cc3de 100644 --- a/src/main/java/de/juplo/demo/DemoController.java +++ b/src/main/java/de/juplo/demo/DemoController.java @@ -2,10 +2,13 @@ package de.juplo.demo; import java.util.stream.Collectors; +import java.util.stream.Stream; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.thymeleaf.util.StringUtils; /** @@ -16,6 +19,20 @@ import org.springframework.web.bind.annotation.RequestMapping; @Slf4j public class DemoController { + @ModelAttribute + public Form createForm( + @RequestParam(name = "name", required = false) String param) + { + Form form = new Form(); + if (param == null) + { + Stream + .of( "foo", "bar" ) + .forEach(option -> form.map.put(option, false)); + } + return form; + } + @RequestMapping("/") public String display(@ModelAttribute Form form) { @@ -30,4 +47,27 @@ public class DemoController .collect(Collectors.joining(", ", ", ", ""))); return "form"; } + + @RequestMapping(path = "/", params = "add") + public String add(@ModelAttribute Form form, @RequestParam String name) + { + if (!StringUtils.isEmptyOrWhitespace(name)) + { + form.map.put(name.trim(), Boolean.FALSE); + log.info("Added option \"{}\" to the map", name.trim()); + } + else + { + log.info("Ignoring empty option-name"); + } + return display(form); + } + + @RequestMapping(path = "/", params = "remove") + public String remove(@ModelAttribute Form form, @RequestParam String remove) + { + Boolean value = form.map.remove(remove); + log.info("Removed option \"{}\" with value {} from the map", remove, value); + return display(form); + } }