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 :
Kann mir jemand helfen ? Vielen Dank
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