[JSP/JSTL]The class java.lang.String does not have the property
Bonjour à tous !
Je coince depuis hier sur l'erreur suivante :
Code:
javax.el.PropertyNotFoundException: The class 'java.lang.String' does not have the property '0'.
Ci-dessous le bout de code source de l'erreur. J'ai le nez dedans depuis des heures, j'ai lu, relu, re-relu, fouillé le web... Pas mal de personnes ont eu la même erreur mais je n'ai pas pu faire de parallèle entre leur souci et le mien.
Un très grand merci d'avance pour votre aide.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
| <c:forEach items="${model.menus}" var="objA">
<%
int nbRubrique = 0; //compteurs pour appliquer le style css adapté
int nbRubrique2 = 0;
%>
<c:set var="menuLibelle" value="${objA[0]}" scope="request" />
<%
String menuLibelle = ((String)request.getAttribute("menuLibelle")).toString();
%>
<li class="NavBarreMenu" id="NavBarreMenu2">
<a class="BarreMenu" title="<% out.println(menuLibelle);%>" href="#">
<span><% out.println(menuLibelle);%></span>
</a>
<ul class="NavBLevel2">
<%-- NIVEAU 2 : RUBRIQUE --%>
<c:forEach items="${model.rubriques}" var="objB">
<c:set var="menuLibelleRub" value="${objB[0]}" scope="request" />
<c:set var="rubriqueLibelle" value="${objB[1]}" scope="request" />
<c:set var="rubriqueLien" value="${objB[2]}" scope="request" />
<%
String menuLibelleRub = ((String)request.getAttribute("menuLibelleRub")).toString();
String rubriqueLibelle = ((String)request.getAttribute("rubriqueLibelle")).toString();
String rubriqueLien = ((String)request.getAttribute("rubriqueLien")).toString();
if(menuLibelleRub.equals(menuLibelle)){
%>
<li class="<% if (nbRubrique == 0) { out.println("First"); }
if (rubriqueLien.length() == 0) { out.println("First"); }%>" >
<%
if (rubriqueLien.length() == 0) {
out.println("<a><span>" + rubriqueLibelle + "</span></a>");
} else {
%>
<a href="<% out.println(rubriqueLien);%>" target="_blank">
<span><% out.println(rubriqueLibelle);%></span>
</a>
<%
}
nbRubrique += 1;
%>
<%-- NIVEAU 3 : RUBRIQUE2 (=sous-sous-menus) --%>
<ul class="NavBLevel3">
<c:forEach items="${model.rubriquesNiv2}" var="objC">
<c:set var="rubriqueLibelle2" value="${objC[0]}" scope="request" />
<c:set var="rubrique2Libelle" value="${objC[1]}" scope="request" />
<c:set var="rubrique2Lien" value="${objC[2]}" scope="request" />
<%
String rubriqueLibelle2 = ((String)request.getAttribute("rubriqueLibelle2")).toString();
String rubrique2Libelle = ((String)request.getAttribute("rubrique2Libelle")).toString();
String rubrique2Lien = ((String)request.getAttribute("rubrique2Lien")).toString();
if(rubriqueLibelle2.equals(rubriqueLibelle)){
%>
<li class="<% if (nbRubrique2 == 0) { out.println("First"); }
if (rubriqueLien.length() == 0) { out.println("First"); }%>" >
<%
if (rubriqueLien.length() == 0) {
out.println("<a><span>" + rubriqueLibelle + "</span></a>");
} else {
%>
<a href="<% out.println(rubrique2Lien);%>" target="_blank">
<span><% out.println(rubrique2Libelle);%></span>
</a>
<%
}
nbRubrique2 += 1;
%>
</li>
<% } %>
</c:forEach>
<%
nbRubrique2 = 0;
%>
</ul>
</li>
<% } %>
</c:forEach>
<%
nbRubrique = 0;
%>
</ul>
</li>
</c:forEach> |
PS : pour la petite histoire, il s'agit de la génération dynamique d'une barre de menu à trois niveaux (les libellés et liens sont stockés dans une base de données).
Niveau 1 : menu; niveau 2 : rubrique, niveau 3 : rubrique2.
Mille mercis !