Comment obtenir des paramètres de L'URL avec JSP
Dans JSP Comment puis-je obtenir des paramètres de L'URL?
Par exemple, j'ai une URL www.somesite.com/Transaction_List.jsp?accountID=5
je veux avoir le 5.
Est-il une demande.getAttribute ("accountID") comme il est pour les sessions ou quelque chose de similaire?
7 réponses
Dans une requête GET, les paramètres de requête sont pris à partir de la chaîne de requête (les données suivant le point d'interrogation sur L'URL). Par exemple, L'URL http://hostname.com?p1=v1&p2=v2 contient deux paramètres de requête - - p1 et p2. Dans une requête POST, les paramètres de requête sont pris à la fois à partir de la chaîne de requête et des données publiées qui sont codées dans le corps de la requête.
Cet exemple montre comment inclure la valeur d'un paramètre de requête dans le sortie:
Hello <b><%= request.getParameter("name") %></b>!
Si la page a été consultée avec L'URL:
http://hostname.com/mywebapp/mypage.jsp?name=John+Smith
La sortie résultante serait:
Hello <b>John Smith</b>!
Si name n'est pas spécifié sur la chaîne de requête, la sortie serait:
Hello <b>null</b>!
Cet exemple utilise la valeur d'un paramètre de requête dans un scriptlet:
<%
if (request.getParameter("name") == null) {
out.println("Please enter your name.");
} else {
out.println("Hello <b>"+request. getParameter("name")+"</b>!");
}
%>
À propos des objets implicites du langage D'Expression unifié , le tutoriel Java EE 5 écrit:
Objets Implicites
Le langage d'expression JSP définit un ensemble d'objets implicites:
pageContext
: le contexte de la page JSP. Donne accès à divers objets, y compris:
servletContext
: le contexte de la servlet de la page JSP et de tous les composants web contenus dans la même application. Voir Accès au contexte Web.session
: L'objet de session pour le client. Voir Maintien De L'État Du Client.request
: la requête déclenchant l'exécution de la page JSP. Voir obtenir des informations à partir des requêtes.response
: la réponse renvoyée par la page JSP. Voir Construction De Réponses.- en outre, plusieurs objets implicites sont disponibles qui permettent un accès facile aux objets suivants:
param
: mappe un nom de paramètre de requête à une seule valeurparamValues
: mappe un nom de paramètre de requête à un tableau de valeursheader
: mappe un nom d'en-tête de requête à une seule valeurheaderValues
: mappe un nom d'en-tête de requête à un tableau de valeurscookie
: mappe un nom de cookie à un seul cookieinitParam
: mappe un nom de paramètre d'initialisation de contexte à une seule valeur- enfin, il y a des objets qui permettent d'accéder aux différentes variables étendues décrites dans Utilisation des objets de portée.
pageScope
: mappe les noms de variables à portée de page à leurs valeursrequestScope
: mappe les noms de variables à portée de requête à leurs valeurssessionScope
: mappe les noms de variables à portée de session à leurs valeursapplicationScope
: mappe les noms de variables à portée d'application à leurs valeurs
Les parties intéressantes sont en gras:)
Donc, pour répondre votre question, vous devriez pouvoir y accéder comme ceci (en utilisant EL):
${param.accountID}
Ou, en utilisant Scriptlets JSP (non recommandé):
<%
String accountId = request.getParameter("accountID");
%>
Utilisez EL (langage D'Expression JSP):
${param.accountID}
Si je puis Ajouter un commentaire ici...
<c:out value="${param.accountID}"></c:out>
Ne fonctionne pas pour moi (il imprime un 0).
Au Lieu de cela, cela fonctionne:
<c:out value="${param['accountID']}"></c:out>
request.getParameter("accountID")
est ce que vous cherchez. Cela fait partie de L'API Java Servlet. Voir http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html pour plus d'informations.
Exemple vous vouliez supprimer l'enregistrement subject avec son subject_id
@RequestMapping(value="subject_setup/delete/{subjectid}",method = RequestMethod.GET)
public ModelAndView delete(@PathVariable int subjectid) {
subjectsDao.delete(subjectid);
return new ModelAndView("redirect:/subject_setup");
}
" Et le paramètre sera utilisé pour l'entrée sur votre requête
public int delete(int subjectid) {
String sql = "update tbl_subject set isdeleted= '1' where id = "+subjectid+"";
return template.update(sql);
}