2010-04-27 13 views
3

Je suis un peu frustré car je ne peux pas trouver les variables auxquelles je peux accéder avec la syntaxe ${...} dans un tag Struts, placé dans une page JSP.

Comme exemple, j'ai le code suivant:

<c:set target="${status.menue}" property="activeMenuePath" value="whatever" /> 

Où fait l'objet "status.menue" doivent être définis pour est accessible avec un signe de dollar et accolades. Est-il défini dans une autre tuile Struts ou dans le formulaire?

+0

ne peut pas voir votre code! –

+2

Question a sauvé ma vie comme vous l'avez mentionné 'dollar' et 'accolades' ce qui le rend interrogeable avec google que google ne vous permet pas de rechercher '$ {' ... – fgysin

Répondre

5

Il doit être placé dans l'une des pages, demande, champs de session ou application à l'aide respectivement JspContext#setAttribute(), ServletRequest#setAttribute(), HttpSession#setAttribute() ou ServletContext#setAttribute(). Vous le faites normalement directement ou indirectement dans une servlet. Les frameworks MVC le font indirectement, généralement configurables en donnant à l'objet modèle une portée "request", "session" ou "application". Le Expression Language (EL) y accédera en utilisant JspContext#findAttribute().

Tout cela est d'ailleurs sans rapport avec Struts. C'est juste un framework MVC hérité qui est construit au-dessus de l'API JSP/Servlet. Le <c:set> n'est pas un tag Struts, c'est un tag JSTL.

+0

Cette réponse était importante pour moi puisque je voulais savoir quelle est la différence contextes il y a et comment les utiliser. Je vous remercie. –