4 import java.util.HashMap;
6 import org.slf4j.Logger;
7 import org.slf4j.LoggerFactory;
8 import org.springframework.stereotype.Controller;
9 import org.springframework.web.bind.annotation.ModelAttribute;
10 import org.springframework.web.bind.annotation.RequestMapping;
11 import org.springframework.web.bind.annotation.RequestParam;
19 public class DemoController
21 private static final Logger LOG =
22 LoggerFactory.getLogger(DemoController.class);
26 public String display(
27 @ModelAttribute("form") Map<Integer, Map<String, Boolean>> form)
29 for (Integer id : form.keySet())
30 for (String entry : form.get(id).keySet())
31 LOG.info("{} - {}: {}", id, entry, form.get(id).get(entry));
36 @RequestMapping(path = "/", params = "row")
38 @ModelAttribute("form") Map<Integer, Map<String, Boolean>> form,
39 @RequestParam Integer row)
41 LOG.info("Adding row #{}", row);
42 form.put(row, new HashMap<>());
46 @RequestMapping(path = "/", params = "row")
47 public String removeRow(
48 @ModelAttribute("form") Map<Integer, Map<String, Boolean>> form,
49 @RequestParam Integer row)
51 Map<String, Boolean> content = form.remove(row);
52 LOG.info("Removed row #{} with content: {}", row, content);
56 @RequestMapping(path = "/", params = { "row", "entry" })
57 public String addEntry(
58 @ModelAttribute("form") Map<Integer, Map<String, Boolean>> form,
59 @RequestParam Integer row,
60 @RequestParam String entry)
62 LOG.info("Adding entry {} to row #{}", entry, row);
63 form.get(row).put(entry, Boolean.FALSE);
67 @RequestMapping(path = "/", params = { "row", "entry" })
68 public String removeEntry(
69 @ModelAttribute("form") Map<Integer, Map<String, Boolean>> form,
70 @RequestParam Integer row,
71 @RequestParam String entry)
73 Boolean value = form.get(row).remove(entry);
74 LOG.info("Removed entry {} with value {} from row #{}", entry, value, row);