0
J'ai confirmé que j'emballe le RedirectAttributes
avec un objet BusinessAuth
avec des chaînes non vides. Qu'est-ce que je fais mal?Spring MVC - les attributs de flash ne s'affichent pas dans Thymeleaf
AdminController:
@RequestMapping(path = BASE_URI + "/auth/business")
public String generateBusinessKeys(RedirectAttributes redirectAttributes) {
String keyBusiness = ControllerUtil.getNewAuthKey();
String keyMobile = ControllerUtil.getNewAuthKey();
BusinessAuth auth = new BusinessAuth(keyBusiness, keyMobile);
businessAuthService.save(auth);
redirectAttributes.addFlashAttribute("businessAuth", auth);
return "/admin/home";
}
HTML:
<p th:if="${businessAuth} != null" th:text="admin: "></p>
<p th:if="${businessAuth} != null" th:text="${businessAuth.keyAdmin}"></p> <br />
<p th:if="${businessAuth} != null" th:text="mobile: "></p> <br />
<p th:if="${businessAuth} != null" th:text="${businessAuth.keyMobile}"></p> <br />
BusinessAuth:
@Entity
public class BusinessAuth extends BaseEntity {
private String keyMobile;
private String keyAdmin;
public BusinessAuth() {}
public BusinessAuth(String keyMobile, String keyAdmin) {
this.keyMobile = keyMobile;
this.keyAdmin = keyAdmin;
}
public String getKeyMobile() {
return keyMobile;
}
public String getKeyAdmin() {
return keyAdmin;
}
}
Les attributs flash doivent être utilisés après une redirection, mais vous ne redirigez pas uniquement le transfert. Ainsi, les variables ne seront jamais ajoutées au modèle. Il suffit de les ajouter au modèle ou de les rediriger. –