32 votes

Comment obtenir l'attribut de demande dans JSP en utilisant EL?

Je sais que ce n'est pas difficile, mais je ne suis pas du tout avoir de la chance.

Je veux faire de l' fooList à partir d'une Servlet disponible dans une JSP. Ainsi, dans la Servlet j'ai:

request.setAttribute("list", fooList);
RequestDispatcher dispatcher = 
  getServletContext().getRequestDispatcher("/myJsp.jsp");
dispatcher.forward(request, response);

Puis dans la page JSP, je veux:

<c:forEach var="post" items="${SOME_EL_HERE}">
    <!-- stuff -->
</c:forEach>

SOME_EL_HERE est une expression qui récupère l'attribut que j'ai mis sur l' request.

Toutes les pensées? Ma préférence est de ne pas compliquer une tâche simple par l'ajout d'un cadre, mais je suis ouvert à des changements dans la stratégie.

46voto

BalusC Points 498232

C'est juste l'attribut nom que vous avez défini vous-même ici:

request.setAttribute("list", fooList);

C'est donc à l' "list":

<c:forEach var="post" items="${list}">

Plus de détail: EL utilise par défaut PageContext#findAttribute() qui balaye par la suite dans la page, request, session et application des étendues pour la firstnext non nulle, la valeur de l'attribut correspondant au nom de l'attribut.

Si vous souhaitez spécifier explicitement le champ d'application pour le cas où vous avez plusieurs attributs avec le même nom dans différentes étendues, puis normal, approche consiste à utiliser des ${pageScope}, ${requestScope}, ${sessionScope} ou ${applicationScope}. E. g.

<c:forEach var="post" items="${requestScope.list}">

Voir aussi:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X