Die Controller haben jeweils eine autogenerierte Methode (im Beispiel: SubjectController): @RequestMapping(params = "form", method = RequestMethod.GET) //TODO: was macht 'params="form"' genau? Welches "form"? public String createForm(Model model) { Subject subject = new Subject(); subject.setStudy(Context.getContextStudy()); //von uns eingefügt model.addAttribute("subject", subject); List dependencies = new ArrayList(); if (Site.countSites() == 0) { dependencies.add(new String[]{"site", "sites"}); } model.addAttribute("dependencies", dependencies); //s.u. return "subjects/create"; } wird aufgerufen, wenn die create-Form neu (leer) angezeigt werden soll, leitet weiter an das create-Form-View. Es wird das leere Default-Objekt (hier: new Subject()) angelegt, das wohl anschließend z.B. im create-Form-View angezeigt wird Die "dependencies"-Liste wird in den autogenerierten form-Tags (insb. form:dependency) verwendet, um ggf. "The following dependencies need to be created first:" - Listen auszugeben: Im create-View steht: ....... das render-Attribut bewirkt, dass die Form nur ausgegeben wird, wenn die dependencies-Liste leer ist. Darunter wird dann ggf. die dependencies-Liste (wenn sie nicht leer ist) ausgegeben. modelAttribute verweist auf das von der Form anzuzeigende Objekt -- hier das Subject, das in createForm() mit model.addAttribute("subject", subject) hinzugefügt wurde.