Je dois concevoir plusieurs pages en jsp. Après avoir cliqué sur le bouton d'envoi de la première page, celle-ci devrait être automatiquement redirigée vers la deuxième page.
Pouvez-vous nous aider avec un exemple rapide ou un lien vers un tutoriel qui montre comment implémenter cela?
<%
String redirectURL = "http://whatever.com/myJSPFile.jsp";
response.sendRedirect(redirectURL);
%>
Cette réponse contient également une solution standard utilisant uniquement la balise de redirection jstl:
<c:redirect url="/home.html"/>
Il suffit de définir la page cible dans l'attribut action
de la <form>
contenant le bouton d'envoi.
Donc, dans page1.jsp
:
<form action="page2.jsp">
<input type="submit">
</form>
Indépendamment du problème, un JSP est pas le meilleur endroit pour faire des affaires, si vous en avez besoin. Pensez à apprendre servlets .
Bonjour à vous : Si vous avez besoin de plus de contrôle sur l'endroit où le lien doit être redirigé, vous pouvez utiliser cette solution.
C'est à dire. Si l'utilisateur clique sur le lien VÉRIFIER , mais que vous souhaitez l'envoyer à commander si son enregistré (connecté) ou registration page s'il ne le fait pas.
Vous pouvez utiliser JSTL core LIKE:
<!--include the library-->
<%@ taglib prefix="core" uri="http://Java.Sun.com/jsp/jstl/core" %>
<%--create a var to store link--%>
<core:set var="linkToRedirect">
<%--test the condition you need--%>
<core:choose>
<core:when test="${USER IS REGISTER}">
checkout.jsp
</core:when>
<core:otherwise>
registration.jsp
</core:otherwise>
</core:choose>
</core:set>
EXPLAINING: est identique à ...
//pseudo code
if(condition == true)
set linkToRedirect = checkout.jsp
else
set linkToRedirect = registration.jsp
THEN: en HTML simple ...
<a href="your.domain.com/${linkToRedirect}">CHECKOUT</a>
Extension de la réponse de @ oopbase avec l'instruction return;
.
Prenons un cas d'utilisation d'un système d'authentification traditionnel dans lequel nous stockons les informations de connexion dans la session . Sur chaque page, nous vérifions la session active comme,
/* Some Import Statements here. */
if(null == session || !session.getAttribute("is_login").equals("1")) {
response.sendRedirect("http://domain.com/login");
}
// ....
session.getAttribute("user_id");
// ....
/* Some More JSP+Java+HTML code here */
Il semble bien à première vue cependant; Il a un problème. Si la session de votre serveur a expiré pour une durée limitée et que l'utilisateur tente d'accéder à la page, il risque de recevoir une erreur si vous n'avez pas écrit votre code dans le bloc try..catch
Ou si vous avez traité if(null != session.getAttribute("attr_name"))
à chaque fois.
Donc, en mettant une déclaration return;
, I a arrêté l'exécution et a été contraint de rediriger la page vers un certain emplacement.
if(null == session || !session.getAttribute("is_login").equals("1")) {
response.sendRedirect("http://domain.com/login");
return;
}
Notez que l’utilisation de la redirection peut varier en fonction des besoins. De nos jours, les gens n'utilisent pas ce système d'authentification. (Approche moderne - Authentification basée sur les jetons ) C'est juste un exemple simple pour comprendre où et comment placer une ou plusieurs redirection (s).