Comment obtenir les parameters de l’URL avec JSP

Dans JSP, comment puis-je obtenir des parameters depuis l’URL?

Par exemple, j’ai une URL www.somesite.com/Transaction_List.jsp?accountID=5
Je veux avoir le 5.

Existe-t-il un request.getAtsortingbute (“accountID”) comme pour les sessions ou quelque chose de similaire?

Dans une requête GET, les parameters de requête sont extraits de la chaîne de requête (les données qui suivent le point d’interrogation sur l’URL). Par exemple, l’URL http://hostname.com?p1=v1&p2=v2 contient deux parameters de requête – – p1 et p2. Dans une requête POST, les parameters de requête sont extraits 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 la sortie générée:

 Hello <%= request.getParameter("name") %>! 

Si la page a été accédée avec l’URL:

 http://hostname.com/mywebapp/mypage.jsp?name=John+Smith 

le résultat résultant serait:

 Hello John Smith! 

Si name n’est pas spécifié sur la chaîne de requête, le résultat sera:

 Hello null! 

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 "+request. getParameter("name")+"!"); } %> 

A propos des objects implicites du langage d’expression unifié , le tutoriel Java EE 5 écrit:

Objets implicites

Le langage d’expression JSP définit un ensemble d’objects implicites:

  • pageContext : Le contexte de la page JSP. Donne access à divers objects, notamment:
    • servletContext : Contexte du servlet de la page JSP et des composants Web contenus dans la même application. Voir Accès au contexte Web.
    • session : object de session pour le client. Voir Maintenance de l’état du client.
    • request : La requête déclenchant l’exécution de la page JSP. Voir Obtention d’informations à partir des demandes .
    • response : La réponse renvoyée par la page JSP. Voir Construire des réponses.
  • De plus, plusieurs objects implicites sont disponibles et permettent un access facile aux objects suivants:
    • param : mappe un nom de paramètre de requête à une valeur unique
    • paramValues : paramValues un nom de paramètre de requête à un tableau de valeurs
    • header : mappe un nom d’en-tête de requête sur une valeur unique
    • headerValues : headerValues un nom d’en-tête de requête à un tableau de valeurs
    • cookie : mappe un nom de cookie à un seul cookie
    • initParam : initParam un nom de paramètre d’initialisation du contexte sur une valeur unique
  • Enfin, certains objects permettent d’accéder aux différentes variables décrites dans la section Utilisation des objects de scope.
    • pageScope : pageScope les noms de variables avec scope de page à leurs valeurs
    • requestScope : requestScope les noms de variables ayant une scope de requête à leurs valeurs
    • sessionScope : sessionScope les noms de variables ayant une scope de session à leurs valeurs
    • applicationScope : mappe les noms de variables ayant une scope 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, à l’aide de Scriptlets JSP (non recommandé):

 <% String accountId = request.getParameter("accountID"); %> 

Utilisez EL (langage d’expression JSP):

${param.accountID}

Si je peux append un commentaire ici …

ne fonctionne pas pour moi (il imprime un 0).

Au lieu de cela, cela marche:

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.

 Ssortingng accountID = request.getParameter("accountID"); 

exemple vous vouliez supprimer le 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 entrer dans votre requête

 public int delete(int subjectid) { Ssortingng sql = "update tbl_subject set isdeleted= '1' where id = "+subjectid+""; return template.update(sql); }