J'ai une application Java sans cadre. Il se compose de fichiers JSP pour la vue et les servlets pour la logique commerciale. Je dois définir la session utilisateur est le servlet avec un paramètre prénom. Dans le fichier JSP, je dois vérifier si mon premier paramètre Nom a une valeur ou non. Si le paramètre Prénom est défini, j'ai besoin d'afficher certains HTML dans le fichier JSP. S'il n'est pas défini, j'ai besoin d'afficher différents HTML dans le fichier JSP.
servlet.java: p> header.jsp: p> // Between the <p> tags bellow I need to put some HTML with the following rules
// If firstName exist: Hello ${firstName} <a href="logout.jsp">Log out</a>
// Else: <a href="login.jsp">Login</a> or <a href="register.jsp">Register</a>
<p class="credentials" id="cr"></p>
3 Réponses :
<% if (session.getAttribute("firstName") == null) { %> <p> some content </p> <% } else {%> <p> other content </p> <% } %>
Merci Ibrahim! Cette solution est propre et simple. C'est exactement ce que je voulais faire. Je jouais avec JSP el et c'était vraiment en désordre. :)
Désordonné? Apparemment tu as fait quelque chose de mal. Avec jstl / el c'est aussi simple que Quelque contenu p> c: if> "$ { vide prénom} "> Autre contenu p> c: Si> code>. Je ne sais pas comment c'est plus désordonné.
@Ballusc je suis sûr! Je cherchais une construction si elle est construite à El et je ne pouvais pas le faire travailler, alors j'ai abandonné l'idée. En regardant votre exemple, cela ferait ce que je voulais aussi. J'utiliserai probablement celui-ci au lieu de mettre le code Java dans mon JSP. J'ai lu qu'il est préférable d'utiliser El / JStl que Java dans votre JSP. Merci pour ton aide!
Très mauvais...! L'utilisation de scriptslets est la pire idée.
Voir la réponse à partir de @menuka Ishan, utilisant JSSTL - Way to Go.
dans le servlet, vous pouvez écrire comme suit the ici, si le nom demande.getsession (true) code> renvoie une nouvelle session s'il n'existe pas de session sinon retournera la session en cours.
Et, dans la page
prénom code> est null Ensuite,
firstpage.html code> sera inclus dans la page sinon
secondpage.html code>. p> p>
Merci Visruth! Excellente explication sur la greve (vrai).
Le request.getsession () code> fait exactement b> le même sous les couvertures. Voir aussi Le Javadoc . En fait, l'argument
true code> est totalement superflu.
Je pense que la meilleure façon de le faire est d'utiliser des balises JSTL. Parce que pour une application simple de JSP, une bonne idée peut être bonne idée d'ajouter tout le code Java à HTML mais plus d'applications plus lourdes Il est préférable d'utiliser le code Java minimum sur HTML. (Couche de vue séparée de la logique) (Lisez ceci pour plus https://stackoverflow.com/a/3180202/2940265 )
si vous n'avez pas inclus JSTL correctement, vous ne pourrez pas obtenir la sortie attendue. Reportez-vous ceci pour un tel incident https://menukablog.wordpress.com/2016/05/10/add-jstl-tab-library-a-you-project-correctement/ p> p>
Pour votre attente, vous pouvez facilement utiliser le code comme ci-dessous