Dans JSP, comment obtenir les paramètres de l'URL?
Par exemple, j'ai une URL www.somesite.com/Transaction_List.jsp?accountID=5
Je veux obtenir le 5.
Existe-t-il un request.getAttribute ("accountID") comme pour les sessions ou quelque chose de similaire?
Dans une requête GET, les paramètres de requête sont extraits 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 demande - - p1 et p2. Dans une demande POST, les paramètres de demande sont extraits de la chaîne de requête et des données publiées qui sont codées dans le corps de la demande.
Cet exemple montre comment inclure la valeur d'un paramètre de requête dans la sortie générée:
Hello <b><%= request.getParameter("name") %></b>!
Si vous avez accédé à la page avec l'URL:
http://hostname.com/mywebapp/mypage.jsp?name=John+Smith
la sortie résultante serait:
Hello <b>John Smith</b>!
Si le nom n'est pas spécifié dans la chaîne de requête, le résultat 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'expressions unifiées , du tutoriel Java EE 5 écrit:
Objets Implicites
Le langage d'expression JSP définit un ensemble d'objets implicites:
pageContext
: contexte de la page JSP. Donne accès à divers objets, notamment:
servletContext
: contexte de la servlet de la page JSP et des composants Web contenus dans la même application. Voir Accès au contexte Web.session
: L'objet de session du client. Voir Gestion de l'état du client.request
: La requête déclenchant l'exécution de la page JSP. Voir Obtention d'informations à partir de demandes .response
: la réponse renvoyée par la page JSP. Voir Construire des réponses.- De plus, plusieurs objets implicites sont disponibles et permettent un accès facile aux objets suivants:
param
: mappe un nom de paramètre de requête sur une valeur uniqueparamValues
: mappe un nom de paramètre de requête sur un tableau de valeursheader
: mappe un nom d'en-tête de demande à une valeur uniqueheaderValues
: mappe un nom d'en-tête de demande sur un tableau de valeurscookie
: associe un nom de cookie à un cookie uniqueinitParam
: mappe un nom de paramètre d'initialisation de contexte avec une valeur unique- Enfin, certains objets permettent d’accéder aux différentes variables de périmètre décrites dans Utilisation des objets Scope.
pageScope
: Mappe les noms de variables de la page avec leurs valeursrequestScope
: mappe les noms de variables couvertes par les demandes avec leurs valeurssessionScope
: Mappe les noms de variables couvertes par les sessions à leurs valeursapplicationScope
: mappe les noms de variables couvertes par l'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 (JSP Expression Language):
${param.accountID}
Si je peux ajouter un commentaire ici ...
<c:out value="${param.accountID}"></c:out>
ne fonctionne pas pour moi (il affiche un 0).
Au lieu de cela, cela fonctionne:
<c:out value="${param['accountID']}"></c:out>
request.getParameter("accountID")
est ce que vous recherchez. 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.
String accountID = request.getParameter("accountID");
www.somesite.com/Transaction_List.jsp?accountID=5
Pour ce URL
, il existe un appel de méthode request.getParameter
dans Java, si vous souhaitez convertir un nombre ici en int
, de la même manière que la valeur de chaîne est convertie en string
. donc pour votre besoin, copiez juste au-dessous de la ligne dans la page,
int accountId =(int)request.getParameter("accountID");
vous pouvez maintenant appeler cette valeur en utilisant accountId
dans la page entière.
ici accountId
est le nom du paramètre, vous pouvez également obtenir plus d’un paramètre en utilisant ceci, mais cela ne fonctionne pas. Cela fonctionnera uniquement avec la méthode GET
si vous cliquez sur la demande POST
, alors ce sera une erreur.
J'espère que c'est utile.
exemple vous vouliez supprimer l'enregistrement sujet 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 la saisie de votre requête
public int delete(int subjectid) {
String sql = "update tbl_subject set isdeleted= '1' where id = "+subjectid+"";
return template.update(sql);
}