# Spring Controller



## Generic1 (3. Jul 2011)

Hallo,

ich habe einen Spring @Controller und möchte diesen Controller für 2 Forms benutzen, Meine Frage wäre jetzt, wie ich die Anfragen im Controller unterscheiden kann. Ich habe folgendes in der Controller- Klasse:


```
@RequestMapping("/administration")
    public String initForm(ModelMap model) {
        final MyModel1 model1 = new MyModel1 ();
        final MyModel2 model2 = new MyModel2 ();
        model.addAttribute("model1", model1);
        model.addAttribute("model2", model2);
        return "administration";
	}

    @RequestMapping(value="/administration", method=RequestMethod.GET)
    public String processSubmitGet(@ModelAttribute("model1") MyModel1 myModel1, BindingResult result, SessionStatus status) {
         return ...;
        }

    @RequestMapping(value="/administration", method=RequestMethod.POST)
    public String processSubmitGetCreateEvent(@ModelAttribute("model2") MyModel2 myModel2, BindingResult result, SessionStatus status) {
        return ....
```

in den forms in den JSP's habe ich model1 und model2 als commandName angegeben. 
Wenn ich das programm jetzt ausführe, bekomme ich:


```
Neither BindingResult nor plain target object for bean name 'model2' available as request attribute
```

Weiß jemand was ich da falsch mache? 
lg


----------



## z-mon (3. Jul 2011)

Hallo Generic1,

du musst vor dem Zugriff auf ein commandObject prüfen, ob es null ist, bevor du darauf zugreifst. Scheinbar scheint in deiner Realisierung ja immer nur ein Objekt (entweder "model1" ODER "model2") gefüllt zu sein.

Versuch es mal mit dem Schlüsselwort _empty_ zum Prüfen des Objektes in der JSP.

Eventuell belegst du auch beide Variablen in beiden Abfragen vor. Einmal ein gefülltes und einmal halt ein leeres.


----------



## Generic1 (3. Jul 2011)

Könntest du da ein bisschen Code zeigen, mir ist nicht klar, wie du das genau meinst, das Attribut empty hab ich noch nicht gesehen.


----------



## z-mon (4. Jul 2011)

Füllst du denn in deinem GET und POST RequestMapping model1 und model2?


```
model.addAttribute("model1", model1);
        model.addAttribute("model2", model2);
```

Diese Zeilen Code solltest du natürlich in GET und POST auch füllen, wenn du das model wieder an die selbe view sendest.

In der JSP kannst du dann mit 

```
<c:if test="${empty model1}">
```
prüfen ob dein model null ist-


----------

