Question

Dire que je donne les résultats suivants pour chaque dans une définition de mise en page des bandes

<c:foreach items="${foo}" var="bar" >
     <s:layout-component name="whatever" />
</c:foreach>

Alors quand je rends que je fais quelque chose comme ceci

<s:layout-component name="whatever">
    //Do something with bar
</s:layout-component>

Le composant quel que soit rendu avant d'être placé dans la configuration de sorte bar est nul et il échoue. Est-il possible que je peux construire une page entière avant la jsp est analysée?

Était-ce utile?

La solution

En voyant l'absence de toute réponse et la question à la recherche assez trivial, je ne pense pas qu'il ya beaucoup de Stripes utilisateurs ici. donc voici mes deux cents:

Ceci est certainement un problème de cadrage. le <s:layout-component> n'a pas accès à la portée la page / boucle de la page parent. Des problèmes similaires existent dans JSP / JSTL lorsque vous effectuez une <jsp:include> dans un <c:forEach>. La variable de boucle est inaccessible dans l'extrait de code inclus par <jsp:include>. Mais en JSP / JSTL qui pourraient être résolus en passant un <jsp:param> le long de la <jsp:include>. Je pris un coup d'œil dans la documentation Stripes et j'ai découvert un <stripes:param> . Voir si cela aide. Au moins ici est une base JSP / JSTL SSCCE pour obtenir l'idée:

main.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<% 
    // Just for demo purposes. Do NOT use scriptlets in real work.
    request.setAttribute("items", java.util.Arrays.asList("foo", "bar", "waa"));
%>

<c:forEach items="${items}" var="item">
    <jsp:include page="include.jsp">
        <jsp:param name="item" value="${item}" />
    </jsp:include>
</c:forEach>

include.jsp

${param.item}<br>

sortie:

foo
bar
waa
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top