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;
@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)
{
}
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);
+ }
}