The default-options "foo" and "bar" are only added for new requests
[demos/spring-boot] / src / main / java / de / juplo / demo / DemoController.java
index a9391db..52fc4fe 100644 (file)
@@ -1,7 +1,9 @@
 package de.juplo.demo;
 
 
+import java.util.LinkedHashMap;
 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;
@@ -18,6 +20,22 @@ import org.thymeleaf.util.StringUtils;
 @Slf4j
 public class DemoController
 {
+  @ModelAttribute
+  public Form createForm(
+      @RequestParam(name = "name", required = false) String param)
+  {
+    Form form = new Form();
+    if (param == null)
+    {
+      form.map =
+        new LinkedHashMap<>(
+            Stream
+                .of( "foo", "bar" )
+                .collect(Collectors.toMap(a -> a, a -> false)));
+    }
+    return form;
+  }
+
   @RequestMapping("/")
   public String display(@ModelAttribute Form form)
   {