Je souhaite soumettre tous les champs de texte et les radiobuttons de mes champs de saisie en tant que ArrayList et les analyser au niveau du contrôleur, mais je ne sais pas vraiment comment.Analyser les champs de saisie en tant que liste de tableaux au contrôleur via @RequestMapping
Toute aide est vraiment appréciée.
Voici ce que j'ai essayé jusqu'à présent:
@RequestMapping(value = "/formdata", method = RequestMethod.POST)
public String formdata(HttpServletRequest req, @AuthenticationPrincipal User currentUser, @ModelAttribute RegDatas regDatas, Model model) {
//get values as regDatas[0]?
}
Voici mon formulaire HTML:
<form method="post" th:action="@{/formdata}" th:object="${regDatas}">
<div class="col-sm-4">
<input th:field="*{regDatas[0].gender}" type="radio" value="MALE" name="gender" disabled="disabled" /><span>Mr</span>
<input th:field="*{regDatas[0].gender}" type="radio" value="FEMALE" name="gender" disabled="disabled"/><span>Frau</span>
<p>Firstname:</p><input required="required" type="text" th:field="*{regDatas[0].firstname}" placeholder="Max" disabled="disabled" />
</div>
<div class="col-sm-4">
<input th:field="*{regDatas[1].gender}" type="radio" value="MALE" name="gender" disabled="disabled" /><span>Mr</span>
<input th:field="*{regDatas[1].gender}" type="radio" value="FEMALE" name="gender" disabled="disabled"/><span>Frau</span>
<p>Firstname:</p><input required="required" type="text" th:field="*{regDatas[1].firstname}" placeholder="Max" disabled="disabled" />
<button type="submit">Speichern</button>
</div>
</form>
Ma classe d'emballage:
public class RegDatas {
private List<RegData> regDatas;
public List<RegData> getRegDatas() {
return regDatas;
}
public void setRegDatas(List<RegData> regDatas) {
this.regDatas = regDatas;
}
}
Ma classe pour stocker des valeurs:
public class RegData {
private String email;
private String firstname;
private Gender gender;
public String getEmail() {return email;}
public void setEmail(String email) {this.email = email;}
public String getFirstname() {return firstname;}
public void setFirstname(String firstname) {this.firstname = firstname;}
public Gender getGender(){ return gender; }
public void setGender(Gender gender){ this.gender = gender; }
}
C'est l'erreur que je vois si je lance comme ça:
org.springframework.beans.NotReadablePropertyException: Invalid property 'RegDatas[0]' of bean class [de.ciss.aag.model.domain.RegData]: Bean property 'RegDatas[0]' is not readable or has an invalid getter method
Sur la valeur nominale, cela semble devoir fonctionner. Quel problème voyez-vous? Que contient la variable 'regDatas' dans votre contrôleur lorsque vous faites le POST? – DaveyDaveDave
J'obtiens cette erreur org.springframework.beans.NotReadablePropertyException: Propriété non valide 'RegDatas [0]' de la classe bean [de.ciss.aag.model.domain.RegData]: La propriété Bean 'RegDatas [0]' n'est pas lisible ou a une méthode de getter invalide – pepote
Quand vois-tu l'erreur? Est-ce lorsque vous soumettez le formulaire ou lorsque vous chargez la page au départ? Avez-vous quelque chose qui remplit votre classe de modèle? Y a-t-il quelque chose dans votre liste 'RegDatas.regDatas' quand la page se charge? – DaveyDaveDave