# Set<T> Attribut eines Objektes wird zu null in thymeleaf



## LP The King (5. Dez 2019)

ich habe zwei klassen

```
public class Partner{
@Id
Long id;

Set<Account> accounts;
}

public class Account{
@Id
Long id;

String name;
}
```

ein Template:
```
<form method="POST" thbject="${partner}" th:action="@{/postmystuff}">
<div th:each="acc : *{accounts}">
<input type="text" th:field="${acc}" />
</div>
<button type="submit">senden</button>
</form>
```

und einen controller:

```
@Controller
public class SomeController{
//...
@GetMapping("/")
public String getMySite(Model m){
Partner p = new Partner(accounts); //accounts ist hier ein set mit 10 accounts
return "mytemplate";
}

@PostMapping("/postmystuff")
public String postMyStuff(@ModelAttribute Partner p){
System.out.println(p); //fürs erste nur ein print
return "redirect:/";
}
}
```

Beim aufrufen der seite werden die 10 input felder korrekt angezeigt, also versteht es bis da hin, dass es ein set mit 10 accounts gibt.
Beim posten (auf button klicken) wird jedoch ein partner mit "null" als account set geprintet.

Kann jemand hier weiterhelfen?


----------



## krgewb (5. Dez 2019)

Bitte immer in Code-Tags posten.

Klassen:

```
public class Partner{
    @Id
    Long id;

    Set<Account> accounts;
}

public class Account{
    @Id
    Long id;

    String name;
}
```

Template:

```
<form method="POST" th:object="${partner}" th:action="@{/postmystuff}">
   <div th:each="acc : *{accounts}">
      <input type="text" th:field="${acc}" />
   </div>
   <button type="submit">senden</button>
</form>
```

Controller:

```
@Controller
public class SomeController{
    //...
    @GetMapping("/")
    public String getMySite(Model m){
        Partner p = new Partner(accounts); //accounts ist hier ein set mit 10 accounts
        return "mytemplate";
    }

    @PostMapping("/postmystuff")
    public String postMyStuff(@ModelAttribute Partner p){
        System.out.println(p); //fürs erste nur ein print
        return "redirect:/";
    }
}
```


----------



## kneitzel (5. Dez 2019)

In der get Methode erstellst du eine lokale Variable aber da du die nicht ins Model packst, wird die natürlich nicht übertragen ...


----------

