Listen Auswahl an MVC Controller zurückgeben

8u3631984

Bekanntes Mitglied
Hallo zusammen

ich habe ein freemarker Template, wo ich einen Spieler angelegen kann (Name, Vorname, Geburtstdatum und Geschlecht)
Nun möchte ich zusätlich definieren in welchen Mannschaften der Spieler vertreten ist (also wo er spielt). Dazu habe ich mehre Listen (je nach Wettbewerb) wo die Mannschaften enthalten sind.

hier mal der Code :
[CODE title="freemarker Template"] <form action="/addAthlete" method="post">
<div class="input-group mb-1">
<span class="input-group-text col-2 mr-1 font-weight-bold">Name</span>
<input class="form-control col-10" type="text" id="name" name="name">
</div>

<div class="input-group mb-1">
<span class="input-group-text col-2 mr-1 font-weight-bold">Vorname</span>
<input class="form-control col-10" type="text" id="preName" name="preName">
</div>

<div class="input-group mb-1">
<span class="input-group-text col-2 mr-1 font-weight-bold">Geburtsdatum</span>
<input class="form-control col-10" type="date" value="2010-01-01" id="birthday" name="birthday">
</div>

<div class="input-group mb-1">
<span class="input-group-text col-2 mr-1 font-weight-bold">Geschlecht</span>

<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="gender" id="genderFemale" value="FEMALE"
checked>
<label class="form-check-label" for="genderFemale">
weiblich
</label>
</div>

<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="gender" id="genderMale" value="MALE">
<label class="form-check-label" for="genderMale">
männlich
</label>
</div>
</div>

<div class="input-group mb-1">
<span class="input-group-text col-2 mr-1 font-weight-bold">Mannschaften</span>

<div class="accordion col-9" id="competitionAccordion">
<#list competitionTeamList as competition, teams>

<div class="card mb-1">
<div class="card-header" id="header_${competition.id}">
<h2 class="mb-0">
<button type="button" class="btn btn-link" data-toggle="collapse"
data-target="#competition_${competition.id}">${competition.name}
</button>
</h2>
</div>

<div id="competition_${competition.id}" class="collapse"
aria-labelledby="header_${competition.id}"
data-parent="#competitionAccordion">
<div class="card-body">
<ul class="list-group" name="teamIDList">
<#list teams as team>
<li class="list-group-item">
<input class="form-check-input me-1" type="checkbox" value=""
aria-label="...">
${team.name}
</li>
</#list>
</ul>
</div>
</div>
</div>
</#list>
</div>
</div>
[/CODE]

Nun meine Frage wie kann ich die Daten aus dem Formular an meinen Controller durchreichen. Bisher habe ich ein Data Objet verwendet :
Java:
    @PostMapping("/addAthlete")
    public String addAthlete(AthleteData athleteData, Model model) {

Java:
@AllArgsConstructor
@Builder(setterPrefix = "with")
@Getter
@ToString
public class AthleteData implements IAthleteData, Serializable {

    @NotNull
    @NotEmpty
    private String name;

    @NotNull
    @NotEmpty
    private String preName;

    @NotNull
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthday;

    @NotNull
    private Athlete.Gender gender;


Kann mir jemand helfen ? Vielen Dank
 

8u3631984

Bekanntes Mitglied
Hallo zusammen,
ich habe die Athlete Data etwas verändert :

Java:
@AllArgsConstructor
@Builder(setterPrefix = "with")
@Getter
@ToString
public class AthleteData implements IAthleteData, Serializable {

    @NotNull
    @NotEmpty
    private String name;

    @NotNull
    @NotEmpty
    private String preName;

    @NotNull
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthday;

    @NotNull
    private Athlete.Gender gender;

    @NotNull
    private List<Long> teamList;
}

hier mein Freemarker Formular
Java:
<div class="container">

    <form action="/addAthlete" method="post">

        <h4 class="text-center">Neuen Spieler anlegen</h4>
        <hr class="mt-2 mb-3"/>

        <div class="form-group row m-2">
            <label for="preName" class="font-weight-bold col-2">Vorname</label>
            <input class="form-control  col-4" type="text" id="preName" name="preName">

            <label for="name" class="font-weight-bold col-2">Name</label>
            <input class="form-control  col-4" type="text" id="name" name="name">
        </div>

        <div class="form-group row m-2">
            <label for="birthday" class="font-weight-bold col-2">Geburtsdatum</label>
            <input class="form-control col-4" type="date" value="2000-01-01" id="birthday"
                   name="birthday">

            <label for="birthday" class="font-weight-bold col-2">Geschlecht</label>

            <div class="form-check col-4">
                <input class="form-check-input" type="radio" name="gender" id="genderFemale"
                       value="FEMALE">
                <label class="form-check-label mr-5" for="genderFemale">weiblich</label>

                <input class="form-check-input" type="radio" name="gender" id="genderMale"
                       value="MALE">
                <label class="form-check-label" for="genderMale">männlich</label>
            </div>
        </div>

        <hr class="mt-2 mb-3"/>
        <div class="form-group row m-2">
            <label for="teamSearch" class="font-weight-bold col-2">Mannschaften</label>
            <input class="form-control col-10" id="teamSearch" type="search" placeholder="Suche" aria-label="Suche">
        </div>

        <div class="form-group row m-2">
            <label class="font-weight-bold col-2"></label>
            <ul class="list-group col-10" id="teamList">
                <#list teams as team>
                    <li class="list-group-item">
                        <input class="form-check-input me-1" type="checkbox" id="${team.id}" value=""
                               aria-label="...">
                        ${team.name} ${team.competitionName} ${team.seasonPeriod}
                    </li>
                </#list>
            </ul>
        </div>

        <hr class="mt-2 mb-3"/>
        <button type="submit" class="btn btn-primary mb-2">Speichern</button>

    </form>
</div>

IM Controller :
Java:
    @PostMapping("/addAthlete")
    public String addAthlete(AthleteData athleteData, Model model) {
        log.info("add athlete with data {}", athleteData);
        athleteService.createAthlete(athleteData);
        return "redirect:/";
    }

Die Daten vom Spieler (name, preName, Gender, Birthday) werden über AThleteData an den Controller weitergereicht. Nur die selektiereten Mannschaften aus der teamList nicht durchgereicht.
Hier die Log Ausgabe :
add athlete with data AthleteData(name=asd213123, preName=asdasd, birthday=2000-01-01, gender=MALE, teamList=null)

Die TeamList ist NULL.
Hat jemand eine Idee ?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
8u3631984 Ist es möglich in Spring Entity generische Listen verwenden Frameworks - Spring, Play, Blade, Vaadin & Co 3
C getSelectedRow() springt bei JButton-Auswahl nicht weiter mit Frameworks - Spring, Play, Blade, Vaadin & Co 16
C Vom Case zur Case-Auswahl springen? Frameworks - Spring, Play, Blade, Vaadin & Co 9
L Spring Data und Rest Controller? Frameworks - Spring, Play, Blade, Vaadin & Co 4
8u3631984 Aktualisiere Spring Controller Frameworks - Spring, Play, Blade, Vaadin & Co 4
R Wie bringe ich UsernamePasswordAuthenticationFilter mit meinem Controller in Verbindung? Frameworks - Spring, Play, Blade, Vaadin & Co 8
R Wie schreibt man Test für einen Controller? Frameworks - Spring, Play, Blade, Vaadin & Co 5
Rakshan Accessing UI elements and corresponding controller mapping Frameworks - Spring, Play, Blade, Vaadin & Co 1
Dimax Spring (im Front mit JS ) Controller aktivieren Frameworks - Spring, Play, Blade, Vaadin & Co 18
V SpringBoot/Thymeleaf ein Attribut zum Controller schicken Frameworks - Spring, Play, Blade, Vaadin & Co 10
iman Controller in Spring 4,0 Frameworks - Spring, Play, Blade, Vaadin & Co 2
L Controller Spring Boot mit Java Frameworks - Spring, Play, Blade, Vaadin & Co 20
robinab JavaFX + Spring4: fxml findet Controller nicht mehr Frameworks - Spring, Play, Blade, Vaadin & Co 11
D Spring Boot Controller kann nicht bei jedem Request erreicht werden Frameworks - Spring, Play, Blade, Vaadin & Co 7
P Spring MVC - Controller -Y Service Frameworks - Spring, Play, Blade, Vaadin & Co 0
D Spring MVC - N Controller - Eine View Frameworks - Spring, Play, Blade, Vaadin & Co 4
G In einen Spring Controller Strings setzen Frameworks - Spring, Play, Blade, Vaadin & Co 1
G Spring Controller Frameworks - Spring, Play, Blade, Vaadin & Co 3
D Validierung von mehreren Objekten/Commands in einem Controller (Spring MVC) Frameworks - Spring, Play, Blade, Vaadin & Co 0

Ähnliche Java Themen

Neue Themen


Oben