Bonjour,
pouvez vous m'aider à trouver un moyen wicket pour définir le mode d'accès à ma page; je souhaite accéder à la même page:
- en mode "create" si accès par le premier lien
- en mode "read only" si accès par le deixième lien
merci d'avance,
Version imprimable
Bonjour,
pouvez vous m'aider à trouver un moyen wicket pour définir le mode d'accès à ma page; je souhaite accéder à la même page:
- en mode "create" si accès par le premier lien
- en mode "read only" si accès par le deixième lien
merci d'avance,
Salut,
Tu peux passer par PageParameters.
Dans ta page, définis le constructeur qui prend APgeParameters en paramètre :
En gros tu récupère le paramètre et selon sa valeur, tu ajoutes soit un panel contenenat un form soit un autre panel qui sert à l'affichage.Code:
1
2
3
4
5
6
7
8
9 public HomePage(PageParameters parameters){ String mode=parameters.getString("mode"); if("create".equals(mode)){ add(new CreatePanel("content")); } else if("read".equals(mode)){ String id=parameters.getString("id"); add(new DisplayPanel("content", new Model<Long>(Long.valueOf(id)))); } }
Pour les liens, tu les crées comme ça :
Code:
1
2 add(new BookmarkablePageLink<HomePage>("createLink", HomePage.class, new PageParameters("mode=create"))); add(new BookmarkablePageLink<HomePage>("viewLink", HomePage.class, new PageParameters("mode=read,id="+entityId)));
salut
avec wicket, tes pages sont des objets, donc tu peux aisément passer des attributs à celle ci. Autrement dit, tu peux aisément prévoir des choses comme :
Attention, en utilisant des attributs définis par toi même, tu obliges l'accès à ta page par le code (donc pas d'accès direct via un lien bookmarké). Si tu veux toujours pouvoir utiliser les fonctionnalités de bookmarking, regardes du côté des PageParameters.Code:
1
2
3 MyPage destination =new MyPage(Mode.CREATE); setResponsePage(destination);
++