download original
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<String[]> dependencies = new ArrayList<String[]>();
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:
<form:create id="fc_de_sofd_goodclinica_domain_Subject" modelAttribute="subject" path="/subjects" render="${empty dependencies}" z="X3SqLhIgL27Cuv8Mzp9uowRW3e0=">
.......
</form:create>
<form:dependency dependencies="${dependencies}" id="d_de_sofd_goodclinica_domain_Subject" render="${not empty dependencies}" z="bzXGhqV8TqNQA0+FcQbIfvhIy0o="/>
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.
back to roo
(C) 1998-2017 Olaf Klischat <olaf.klischat@gmail.com>