./springframework/roo/misc.txt

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>