[JSF] problème de datatable et commandLink

Pierric558 Messages postés 1 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 31 mai 2005 - 31 mai 2005 à 14:40
dalidali86 Messages postés 28 Date d'inscription mardi 14 juillet 2009 Statut Membre Dernière intervention 4 février 2010 - 23 sept. 2009 à 18:35
J'ai créé une datatable. Seulement j'aimerais maintenant créé un lien
sur les attributs de la première colonne de cette table. J'ai essayé,
la balise [.. elle ne fait rien. Quand à la balise
commandLink, elle ne créee pas de lien vers la page voulue mais
toujours la même.

Voici le code de la datatable :



<f:view>
<h:dataTable id="items"
columnClasses="list-column-center, list-column-center"
headerClass="th"
rowClasses="tr0, tr1"
styleClass="list-background"
value="#{expert.items}"
var="item"
bgcolor="black"
cellpadding="1"
cellspacing="1"
width="640">
<h:column >
<f:facet name="header">
<h:outputText value="Code" />
</f:facet>
<h:commandLink action="show">
<h:outputText value="#{item.code}"/>
</h:commandLink>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Nom"/>
</f:facet>
<h:outputText value="#{item.nom}"/>
</h:column>
<h:column >
<f:facet name="header">
<h:outputText value="Prenom" />
</f:facet>
<h:outputText id="prenom" value="#{item.prenom}" />
</h:column>
<h:column >
<f:facet name="header">
<h:outputText value="Téléphone" />
</f:facet>
<h:outputText id="tel" value="#{item.telephonePrincipal}" />
</h:column>
<h:column >
<f:facet name="header">
<h:outputText value="Mail" />
</f:facet>
<h:outputText id="mail" value="#{item.mailPrincipal}" />
</h:column>
</h:dataTable>
</f:view>




La partie du fichier faces-config.xml qui devrait créer les liens :

<navigation-rule>
<from-view-id>/experts.jsp</from-view-id>
<navigation-case>
<from-outcome>nouveau</from-outcome>
<to-view-id>/expert_nouveau.jsp</to-view-id>
<from-outcome>show</from-outcome>
<to-view-id>/expert_fiche_modif.jsp</to-view-id>
</navigation-case>
</navigation-rule>






Ensuite, je voudrais savoir comment récurer la valeur de l'attribut sur
lequel on vient de cliquer ou l'objet correspondant à la ligne de
l'attribut comme j'avais put le faire en JSP :

<td width="56">]"><%=tableau[0]%></td>

12 réponses

tcharl Messages postés 5 Date d'inscription mercredi 29 mars 2006 Statut Membre Dernière intervention 23 septembre 2009
11 nov. 2008 à 23:45
Quarter-Pounder with cheese

il faut bien utiliser commandLink, mais avec une loi de navigation (que tu rajoutes dans faces-config
0
cs_salmato Messages postés 6 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 28 septembre 2009
31 août 2009 à 14:52
Svp , je cherche à afficher les données d'une table dans ma base de données dans une page JSF ???
J ai réussi à faire la connexion et j obtient même resulset mais cmt faire pour afficher les attributs obtenus dans la classe java dans la page JSP ???
0
tcharl Messages postés 5 Date d'inscription mercredi 29 mars 2006 Statut Membre Dernière intervention 23 septembre 2009
31 août 2009 à 20:07
eh bien comme c'est dit ci-dessus !
0
cs_salmato Messages postés 6 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 28 septembre 2009
3 sept. 2009 à 15:21
Wi merci tcharl , j ai réussi à afficher la table mais lorsque je veux supprimer des lignes de cette table , l'opération de suppression se fait sans problème mais j'obtient deux tables l'une ou les lignes supprimées et l autre avant la suppression, si alors tu peux me dire cmt je peux afficher uniquement la table apres l'opération de suppression uniquement ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dalidali86 Messages postés 28 Date d'inscription mardi 14 juillet 2009 Statut Membre Dernière intervention 4 février 2010
21 sept. 2009 à 22:40
Bonjour ,

j'ai un travail similaire à toi , mais c'a pas marché . Je veut afficher une table de ma base de données . J'ai utilisé donc un datatable ,je veut mettre un commandlink devant chaque ligne pour la supprimer . Mais le probléme c'est que lorsque je clique sur ce commandlink rien ne se passe .

le code JSF est le suivant :

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<f:view>
<html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
            <title>JSP Page</title>
        </head>
        
            <h:outputText value="List of Clients"/>
Create a New Account


        <h:form id="create">

            <h:form>
                <h:outputText value="List"/>

                <h:dataTable value="#{metier.mylist}" var="item">
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Id"/>
                        </f:facet>
                        <h:outputText value="#{item.id}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Code"/>
                        </f:facet>
                        <h:outputText value="#{item.code}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Firstname"/>
                        </f:facet>
                        <h:outputText value="#{item.firstname}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Login"/>
                        </f:facet>
                        <h:outputText value="#{item.login}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Lastname"/>
                        </f:facet>
                        <h:outputText value="#{item.lastname}"/>
                    </h:column>
                     <h:column>
                        <f:facet name="header">
                            <h:outputText value="Balance Point"/>
                        </f:facet>
                        <h:outputText value="#{item.balpt}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Rightslevel"/>
                        </f:facet>
                        <h:outputText value="#{item.rightslevel}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Mobilephone"/>
                        </f:facet>
                        <h:outputText value="#{item.mobilephone}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Password"/>
                        </f:facet>
                        <h:outputText value="#{item.password}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Department"/>
                        </f:facet>
                        <h:outputText value="#{item.department}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Company"/>
                        </f:facet>
                        <h:outputText value="#{item.company}"/>
                    </h:column>
                    
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Cams"/>
                        </f:facet>
                        <h:outputText value="#{item.cams}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Title"/>
                        </f:facet>
                        <h:outputText value="#{item.title}"/>
                    </h:column>
                    
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Insertiondate"/>
                        </f:facet>
                        <h:outputText value="#{item.insertiondate}">
                            <f:convertDateTime pattern="MM/dd/yyyy HH:mm:ss" />
                        </h:outputText>
                    </h:column>
        <h:column>

           <h:commandLink id="edit"
                           value="Edit"
                           action="#{metier.edit}">

<f:param name="loginn" value="#{item.login}"/>
           </h:commandLink>
</h:column>
    <h:column>
        <f:facet name="header"></f:facet>
      <h:commandButton id="remove2"
                           value="Delete "
                           action="#{metier.remove2}">

<f:param name="loginn" value="#{item.login}"/>

           </h:commandButton>
     <h:messages />
    </h:column>
                    
                </h:dataTable>
            <h:messages style="color: red" globalOnly="true"/>
            </h:form>

        </h:form>

        

    </html>
    </f:view>



A tu une idée ?
0
cs_salmato Messages postés 6 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 28 septembre 2009
21 sept. 2009 à 23:09
Est ce que la suppression s effectue dans la base de donnée ?? si c est oui alors j ai aussi le même problème , et je dois déployer à nouveau le serveur pour avoir la nouvelle table avec la ligne supprimée .
0
tcharl Messages postés 5 Date d'inscription mercredi 29 mars 2006 Statut Membre Dernière intervention 23 septembre 2009
21 sept. 2009 à 23:20
Quarter-Pounder with cheese
Après, tout se passe dans ton bean jsf.
Sur l'action remove, tu crée une méthode associé qui s'occupe de supprimer dans ta base, et de mettre ta liste de champ à jour. Cette méthode doit te renvoyer une String qui sera interprétée par ton fichier faces config (from: mastringrenvoyée; to: mapagededestinationquiaffichemapageajourquiestcertainementlamemequemapagesource). Le tour sera joué. J'ai pas d'exemple sous la main vu que je ne suis pas chez moi, mais le raisonnement y est...
Si tu veux plus de précisions, envoies moi un message demain^^.

Prochaine, charlie
0
tcharl Messages postés 5 Date d'inscription mercredi 29 mars 2006 Statut Membre Dernière intervention 23 septembre 2009
21 sept. 2009 à 23:23
j'oubliais, jamais de form imbriqués, ce n'est pas dans la spec servlet, donc pas dans la spec jsf... et surtout ça n'a pas à figurer dans ton exemple...
Quarter-Pounder with cheese
0
dalidali86 Messages postés 28 Date d'inscription mardi 14 juillet 2009 Statut Membre Dernière intervention 4 février 2010
22 sept. 2009 à 09:18
Bonjour ,

mais mon probléme c'est que pour moi , la suppression ne s'effectue meme pas dans la base de données .


Le code de la methode de suppression (remove) est :


public String remove()
       
{
     FacesContext context = FacesContext.getCurrentInstance();

Map map = context.getExternalContext().getRequestParameterMap();

 login = (String) map.get("loginn");

System.out.println(login);

  c=cf.find(login);
   cf.remove(c);

    return null;
}



Le system.out.println(login) affiche un ligin null .
Le probléme vient normalement de la ligne

Map map = context.getExternalContext().getRequestParameterMap();


mais , j'ai suivi un tutorial , normalement ca doit marcheer .

Merci bien .
0
dalidali86 Messages postés 28 Date d'inscription mardi 14 juillet 2009 Statut Membre Dernière intervention 4 février 2010
22 sept. 2009 à 09:28
Bonjour ,

tcharl
peut tu explique un peu plus cde que tu veut dire par :


"jamais de form imbriqués"

Merci bien .
0
tcharl Messages postés 5 Date d'inscription mercredi 29 mars 2006 Statut Membre Dernière intervention 23 septembre 2009
23 sept. 2009 à 07:43
Re-

Tu n'as pas le droit de faire:
  <h:form id="create">
     <h:form>
...
</form>
</form>

Par contre, ceci est possible:
  <h:form id="create">
....
</form>
     <h:form>
...
</form>


Quarter-Pounder with cheese
0
dalidali86 Messages postés 28 Date d'inscription mardi 14 juillet 2009 Statut Membre Dernière intervention 4 février 2010
23 sept. 2009 à 18:35
Bonjour ,

j'ai supprimé les deux formes imbriquées et c'a bien marché . C'était vraiment le brobléme .

Merci beaucoup
0
Rejoignez-nous