# Java > Dveloppement Web en Java > Servlets/JSP >  lien avec displaytag

## CPI_en_mousse

Bonjour  tous,

j'utilise le taglib displaytag pour mes tableaux.
J'aimerais avoir un example ou savoir comment peut on faire pour avoir un lien sur chaque ligne qui me renvoie l'objet selectioner?

merci

----------


## azur_34

tu devrais aller voir  cette url, il parle des liens en utilisant les dcorateurs :
http://displaytag.homeip.net/display...rator-link.jsp

----------


## CPI_en_mousse

merci, je vais utiliser ca maintenant mais je n'ai pas tous compris comment ca fonctione:
pour l'instant j'ai fait ca et ca ne marche pas

cote JSP:


```

```

cote decorator:


```

```

sachant que j'utilise struts et que je voudrais afficher le login dans le champs login lorsque j'utilise le decorateur.

je passe directement par le bean form de struts mais je ne devrais pas passer plutot par le bean action de struts??

toujours est il que lors de l'execution je me retrouve avec cet erreur


```

```


de plus je ne vois pas tres bien comment ca peu me servir pour trier une colonne de date??

----------


## azur_34

D'une, le problme de tri sur d'une colonne sur des dates c'est autre chose.

Sinon pour ton lien il faut que tu prcises en argument le login du user que tu veux diter
style:


```

```

Ce qui mettra user.getLogin() dans le champs login de ton form dans l'action correspondant a visualiser.do. 



> je passe directement par le bean form de struts mais je ne devrais pas passer plutot par le bean action de struts??


En effet tu ne dois pas passer directement par le form.

Pour ton erreur crit plutot userSelected (sans majuscule a user!)

A quoi te sert : <bean:message key="button.modify"/> ?

----------


## CPI_en_mousse

ha oui ca y est j'ai compris. merci a toi



```
<bean:message key="button.modify"/>
```

 me sert a afficher le texte dans le tableau, ici : modify. c'est la dessus que ce fait le lien.


Pendant qu'on y est, J'ai vu que pour le tri sur les dates, il fallait aussi pass par un decorateur, c'est bien cela? comment faut il faire? que faut il mettre dnas le decorateur?

----------


## azur_34

Tu n'en as pas besoin le texte sera afficher grace au dcorateur 
"<a href=\"visualiser.do?login="+user.getLogin()+">*Modifier*</a>"
Le lien se fera sur Modifier

----------


## azur_34

pour ton tri sur les dates que veux tu faire exactement? veux tu que la colonne soit tri ds le dpart et que cela reste fig ou que l'utilisateur puisse tri une colonne date?
Je ne pense pas que tu ais besoin de dcorateur pour cela 
 pour le premier cas tu fais un order by sur ta requete select et pour le second cas il me semble qu'il faut ajouter sortable="true" a ta balise <display:column>

----------


## CPI_en_mousse

maintenant j'ai un probleme de mise en page.

mes entrees sont toutes sur a meme ligne et dans la colonne action (celle ou devrait se faire le lien), il n'y a rien

exemple de mon tableau qui est actuellement comme ceci:
usr1        usr2           usr3      .....

au lieu de comme ceci:
usr1
usr2
..
.
.
.



```

```

pourquoi j'ai cela?

----------


## CPI_en_mousse

j'ai trouve, il manquait un \ a la fin de l'url

Merci pour tout azur34. tu es comme ca :  ::king::

----------


## azur_34

je sais pas mais essaye avec ceci dans un premier temps :


```

```

----------


## azur_34

de rien  ::):

----------


## CPI_en_mousse

oui en fait j'ai encore un petit souci

j'ai bien l'url suivante dans la barre d'adresse : http://localhost:8084/QATS/logonSubmit.do?login=usr1

mais le paramtre ne s'affiche pas dans le champs de mon formulaire qui s'appel login.

Je rappel que je travaille avec struts.

De plus si je suis logger avec un autre user et que je souhaite modifier un autre user, je me fais delogguer

----------


## azur_34

peux tu me montrer le code de ton action correspondant a logonSubmit.do stp

----------


## CPI_en_mousse

```

```

----------


## CPI_en_mousse

il n'y aurai pas une ligne a rajouter en debut de page JSP pour recuperer les parametre passer dans l'uRL?

----------


## azur_34

pourrait tu me montrer ton fichier de config struts

----------


## CPI_en_mousse

```

```

----------


## azur_34

en fait ca vien de la

```

```

il faut que tu ais quelque chose du type CreateUserForm sinon videmment quand tu veux rcuprer ton login dans ta fonction execute tu n'as rien.
A ta place je changer d'action pour le lien cela t'viterait la dconnection (i.e. par exemple: http://localhost:8084/QATS/*visualiser*?login=usr1)

----------


## CPI_en_mousse

j'ai deja un CreateUserForm qui recupere les valeur du formulaire quand je le submit.

Je ne suis pas sur d'avoir compris. tu preconise de fair eun nouveau formulaire?

----------


## azur_34

Tu n'as pas besoin de crer un nouveau formulaire si createUserForm convient  ce que tu dsires, mais il faut que tu changes l'action de ton lien. En effet dans l'action "logonSubmit" tu utilises le formulaire LogonForm, et donc ton lien ne modifie pas le login du createUserForm  mais le login(s'il existe) du LogonForm.
Si tu ne comprends ce que je veux dire, et que le formulaire logonForm a un attribut login, change dans ta fonction execute:
String login = ((CreateUserForm) form).getLogin();
en:
String login = ((LogonForm) form).getLogin();
System.out.println("Le login est :"+login);

et la normalement que tu devrais voir s'afficher :"usr1"

----------


## CPI_en_mousse

::yaisse2::  ::yaisse2:: 

et le code final :


```

```


Merci beaucoup azur34. grce a toi j'ai compris beaucoup de chose concernant Struts et je pense que ca me sera bcp util par la suite. ca va me simplifie bcp la vie

c toi le  ::king::  ::hola::  ::merci::

----------


## CPI_en_mousse

arfff, du coup mes attribut de session "alluser" et "allRole" ne sont plus passe et du coup, mes liste ne sont plus affich, c'est assez gnant.

Comment fiare pour le lui repasser?

----------


## azur_34

Pourquoi vouloir afficher une liste d'utilisateurs quand tu en dites un seul?
Essaye de mieux dfinir ton besoin

----------


## CPI_en_mousse

he bien j'affiche ma liste et mon formulaire dans la meme page.

ce formulaire me permet d'en ajouter des nouveau ou d'en modifier.
De plus je sais que ma liste ne sera jamais bien longue donc ce n'est pas gnant et ca limite le nombre de page et de changement pour l'utilisateur.

----------


## azur_34

Peux tu montrer le code de ta jsp s'il te plait

----------


## CPI_en_mousse

```

```

----------


## azur_34

Tu n'utilises pas tes formulaires dans ta jsp?

----------


## CPI_en_mousse

si les voila :


```

```

de plus, un de mes attribut de session est une collection qui me permet de remplir un champs de type select

----------


## azur_34

je ne vois pas de CreateUserForm nul part mais si tu pouvais me commenter un peu ta jsp ca ser bien histoire que je comprenne ce que tu fais. Tu arrives a afficher le dtail de ton utilisateur?

----------


## CPI_en_mousse

c'est normal que tu ne vois pas de CreateUserForm null part, j'utilise Struts et le form que j'utilise est createUser


ci dessous c le code qui me permet d'afficher mes users. j'utilise le taglib displaytag (mais ca tu le sais)  ::P: 


```

```

ci dessous c le formulaire qui me sert aussi bien a creer ou modifier un utilisateur:


```

```

et ici (partie du form) j'affiche les different role que peux avoir un user. je reocis ue collection "allRole" via mes parametre de session puis l'affiche


```

```

mais lorsque je souhaite modifier un user, je clique sur le lien du tableau generer par le decorator. l'user est bien plac dans les formulaires mais je ne recois plus mes collections. pourtant leur scope est bien session.

----------


## azur_34

Faute de mieux tu peux crer une liste d'utilisateur allUser dans ton form createUser ainsi qu'une liste de roles allrole, et tu les recharges au moment o tu dites ton utilisateur

----------


## CPI_en_mousse

comment se fait il que mes collections ne sont pas garde dans les parametre de session? le scope est pourtant bien session. je devrais pouvoir les retrouver non?

----------


## CPI_en_mousse

bon j'ai poste un post sur le forum struts. j'espere que ca sera resolu.

Encore un grand  ::merci::

----------

