Bonjour,
Pour m'exercer sur JSF que je commence à peine à découvrir, j'essaie de refaire à la sauce JSF un projet codé avec JSP/servlets.
Je bloque sur une des "fonctionnalités" qui était opérationnelle dans la version JSP/servlets : je dispose d'une Entity Member qui contient une liste de News. Lors de l'affichage de profil.xhtml, la liste de News est affichée. Si l'utilisateur connecté est le même que l'auteur des News, un lien d'édition est disponible pour chacune d'elle. Lors du clic sur un de ces liens, un modal Bootstrap avec un formulaire d'édition apparaît. Je veux que la zone de texte de ce formulaire soit pré-remplie avec le contenu actuel de la News.
Auparavant, j'avais déjà essayé (sans succès) de remplir cette zone de texte avec le contenu d'un paragraphe donné (contenu de la news, repéré par son id) du coup j'avais généré le code du modal autant de fois que j'affichais une news (5 maximum) et je remplissais naturellement la textArea :
Désormais j'ai un bean NewsBean(RequestScoped) qui contient un attribut content. Du coup, je n'arrive pas à pré-remplir le composant <h:textArea> puisque sa valeur initiale est initialisée à celle de content (donc à null) ! Comme solution temporaire j'ai fait un formulaire presque HTML pur sucre mais ça m'oblige à récupérer les paramètres et les convertir... bref tout ce que JSF devrait me permettre de ne pas faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <c:forEach var="var" items="${requestScope.member.news}"> [...] <!-- Code HTML non pertinent --> <textarea name="content" rows="5" maxlength="500" placeholder="Saisissez votre message ici"><c:out value="${var.content}"/></textarea> [...] <!-- Code HTML non pertinent --> </c:forEach>
Y a-t-il un moyen de faire ça plus proprement avec JSF ? Merci d'avance !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <h:form> <textarea name="content" rows="5" maxlength="500" placeholder="Saisissez votre message ici" style="width:95%"><h:outputText value="#{var.content}"/></textarea> <button type="button" class="btn btn-default pull-right" data-dismiss="modal">Fermer</button> <h:commandButton action="#{newsBean.edit}" value="Poster" styleClass="btn btn-primary pull-right"> <f:param name="id" value="#{var.id}" /> </h:commandButton> </h:form>
Partager