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; 
} 

}

+0

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. –

Répondre

0

La définition de l'attribut sur un ModelMap a fait l'affaire.