Bonjour,
Je suis en train de suivre en partie le tuto Wicket de Philippe Sénéchal : http://psenechal.developpez.com/tuto...et-et-eclipse/
Cependant la partie V.I sur les sessions me pose un problème.
J'ai une erreur de cast lors de l'exécution :
Le problème se situe au niveau du cast de la classe BasePage lors de la récupération de la session :Code:Last cause: org.apache.wicket.protocol.http.WebSession cannot be cast to com.base.Dossier
Il me semble pourtant avoir déclarer les bonnes méthodes aux bons endroits selon le tuto.Code:
1
2
3 public Dossier getDossier() { return (Dossier) getSession(); }
Classe d'initialisation :
La classe correspondant à mon gabarit :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class Application extends WebApplication { public Application() { } @Override public Session newSession(Request request, Response response) { return new Dossier(request); } @Override public Class getHomePage() { return LoginPage.class; } }
La classe de Dossier spécialisation de WebSession :Code:
1
2
3
4
5
6
7
8
9 public abstract class BasePage extends WebPage { public BasePage() { super(); } // Récupération de la session public Dossier getDossier() { return (Dossier) getSession(); }
La page de login qui tente d'appeler la méthode getDossier :Code:
1
2
3
4
5
6 public class Dossier extends WebSession { // Constructeur public Dossier(Request request) { super(request); } }
J'avoue rester un peu perplexe et n'arrive pas à voir où est le problème.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public class LoginPage extends BasePage { private static final String idFormulaire = "form"; // Contructeur public LoginPage() { super(); LoginPageForm form = new LoginPageForm(idFormulaire); add(form); } // Classe du formulaire html LoginPage private class LoginPageForm extends Form<Object> { // Récupère la session Dossier dossier = getDossier(); public LoginPageForm(String id) { super(id); } } }
Merci pour votre aide.