Ceci est un exemple d'un type de problème que j'ai eu.Utilisation du polymorphisme lors de la génération de pages Web?
Lorsqu'un utilisateur arrive sur la page d'accueil de mon application, il y a deux possibilités, il/elle est:
- connecté
- pas connecté
Si l'utilisateur est connecté Je veux afficher le nom d'utilisateur en haut à droite et un lien qui dit "se déconnecter". Si l'utilisateur n'est pas connecté, je souhaite afficher un lien "login ou inscription".
Auparavant j'aurais appelé du code de la JSP qui retournerait un morceau approprié de HTML que je collerais dans ma page. Mais ce n'est probablement pas la meilleure chose à faire, même si c'est simple. Maintenant je crois que je devrais envoyer la demande initiale pour la page d'accueil à une servlet (au lieu de jsp), qui instanciera un objet de type "HomePage" qui a des sous-classes "LoggedInHomePage" et "NotLoggedInHomePage" selon si un utilisateur id est disponible dans la variable de session. Je vais devoir déterminer le bon constructeur avec une instruction if ou case.
Jusqu'à présent, il semble plus propre. Mais à ce stade, cela devient compliqué, parce que je dois maintenant savoir si j'ai ou non userId fourni dans mon "objet de demande" pour lequel j'ai besoin d'utiliser des instructions if, ou j'utilise un template jsp différent qui implique deux jsps presque identiques assis sur le serveur pour chaque page.
Ni semble élégant. Aide le plus apprécié. Si vous avez une bonne solution à ce problème, s'il vous plaît, ignorez ma description et étalez-la, cela ne me dérange pas de jeter toutes les idées que j'ai présentées ici.
Merci le seul changement que je ferai est que je vais retourner une liste d'objets Lien, car le problème est dans un cas, j'ai un seul lien (inscription) et dans l'autre cas, j'ai deux liens (nom d'utilisateur, déconnexion). Merci. – Ankur